前言
vue-cli是构建vue单页应用的脚手架,输入一串指定的命令行从而自动生成vue + wepack的项目模板。这其中webpack发挥了很大的作用,它使得我们的代码模块化,引入一些插件帮我们完善功能可以将文件打包压缩,图片转base64等。后期对项目的配置使得我们对于脚手架自动生成的代码的理解更为重要,接下来我将基于webpack3.6.0版本结合文档将文件各个击破。
vue-cli项目结构解释
1 | |-- build // 项目构建(webpack)相关代码 |
package.json
1 | { |
重点分析:
devDependencies和dependencies的区别:
- devDependencies里面的插件只用于开发环境,不用于生产环境,即辅助作用,打包的时候需要,打包完成就不需要了。
- dependencies是需要发布到生产环境的,自始至终都在。比如webpack等插件只是在开发中使用的包就写入到devDependencies,
而像vue这种项目全程依赖的包要写入到dependencies
file-loader和url-loader的区别:
- file-loader可对图片进行压缩,但是还是通过文件路径进行引入,当http请求增多时会降低页面性能,
- url-loader通过设定limit参数,小于limit字节的图片会被转成base64的文件,大于limit字节的将进行图片压缩的操作。
.postcssrc.js
.postcssrc.js文件其实是postcss-loader包的一个配置,在webpack的旧版本可以直接在webpack.config.js中配置,现版本中postcss的文档示例独立出.postcssrc.js,里面写进去需要使用到的插件
1 | module.exports = { |
.babelrc
该文件是es6解析的一个配置
1 | { |
build文件夹
1 | ├─build |
build/build.js
该文件作用,即构建生产版本。package.json中的scripts的build就是node build/build.js,输入命令行npm run build对该文件进行编译生成生产环境的代码。
1 |
|
build/check-version.js
该文件用于检测node和npm的版本,实现版本依赖
1 |
|
build/utils.js
utils是工具的意思,是一个用来处理css的文件。
1 |
|
vue-loader.conf.js
该文件的主要作用就是处理.vue文件,解析这个文件中的每个语言块(template、script、style),转换成js可用的js模块。
1 |
|
webpack.base.conf.js
webpack.base.conf.js是开发和生产共同使用提出来的基础配置文件,主要实现配制入口,配置输出环境,配置模块resolve和插件等
1 |
|
webpack.dev.conf.js
1 |
|
webpack.prod.conf.js
1 |
|
config文件夹
1 | ├─config |
config/dev.env.js
config内的文件其实是服务于build的,大部分是定义一个变量export出去。
1 | //采用严格模式 |
config/prod.env.js
当开发是调取dev.env.js的开发环境配置,发布时调用prod.env.js的生产环境配置
1 |
|
config/index.js
1 |
|