初始化项目
新建一个文件夹,然后执行命令
1 2 | npm init -y npm install webpack webpack-cli -D |
编写scss文件
新建一个src文件夹,然后将scss文件全部放在里面
以下是我的目录结构
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | node_modules/ src/ bg/ bg.scss border/ border.scss button/ button.scss color/ bg.scss icon/ iconfont/ iconfont.eot iconfont.svg iconfont.ttf iconfont.woff iconfont.woff2 icon.scss flex/ flex.scss index.scss index.js webpack.config.js //自己新建 |
当我们编写好scss后,要将这些scss打包成一个css文件,这里我们就需要index.scss了,在index.scss里引入其他的scss文件
1 2 3 4 5 6 | @import './icon/icon.scss' ; @import './flex/flex.scss' ; @import './media/media.scss' ; @import './bg/bg.scss' ; @import './border/border.scss' ; @import './tarbar/tarbar.scss' ; |
最后将这个index.scss文件在Index.js里引入
1 | import './index.scss' ; |
配置webpack
这时在项目新建一个文件webpack.config.js
,这个就是webpack默认的配置文件
编写如下代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | let path = require( 'path' ); let MiniCssExtractPlugin = require( 'mini-css-extract-plugin' ); // 抽离css的插件 // development production module.exports = { mode: 'production' , //生产模式,会压缩代码,development不会压缩代码 entry: './src/index.js' , //虽然我们打包的是scss,但是入口依然还得是js output: { path: path.resolve(__dirname, 'build' ) //打包后的出口 }, plugins: [ new MiniCssExtractPlugin({ filename: "main.css" , //打包后的css文件 }) ], //loader链 module: { rules: [ { test: /\.scss$/, use: [ MiniCssExtractPlugin.loader, { loader: 'css-loader' }, { loader: "resolve-url-loader" //因为scss-loader没有重写url的功能,所以必须安装这个 }, { loader: "sass-loader" , // 将 Sass 编译成 CSS options: { sourceMap: true } //必须要写 } ] }, //如果没有字体图标文件,就不需要这个file-loader { test: /\.(woff|woff2?|svg|ttf|eot)$/, use:[ {loader: 'file-loader' ,options:{outputPath: 'iconfont' }} //项目设置打包到dist下的fonts文件夹下 ] } ] } } |
安装对应的loader和插件
总共需要安装的是
- mini-css-extract-plugin
- css-loader
- resolve-url-loader
- sass-loader
- file-loader
最后执行打包命令npx webpack
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
2019-12-04 如何阅读大型前端开源项目的源码(转)