前期准备 1.下载源码,本地切换分支到vue@2.6
一. 查看目录分配
二. 查看package.json=》script
看到vue配置文件用到了rollup(rollup主要用于打包js文件,相比较webpack小而美)
建议了解下rollup,看起来更加易懂
rollup -w -c scripts/config.js --environment TARGET:web-full-dev
代码意思为:以rollup方式启动scripts/config.js并且观察 ,执行环境为 TARGET:web-full-dev
其他如此
进入配置文件script/config.js
这段代码会接收参数并调用genConfig()函数
if (process.env.TARGET) {
module.exports = genConfig(process.env.TARGET)
} else {
exports.getBuild = genConfig
exports.getAllBuilds = () => Object.keys(builds).map(genConfig)
}
genConfig() 通过不同的参数来指定不同的入口,以及输出格式,还有插件rollup插件引用,是否警告 如图展示
builds是一个作者分配的不同类型打包的对象配置
format:指向打包类型
amd- 异步模块定义,适用于 RequireJS 等模块加载器cjs- CommonJS,适用于 Node 环境和其他打包工具(别名:commonjs)es- 将 bundle 保留为 ES 模块文件,适用于其他打包工具以及支持<script type=module>标签的浏览器(别名:esm,module)iife- 自执行函数,适用于<script>标签。(如果你要为你的应用创建 bundle,那么你很可能用它。)umd- 通用模块定义,生成的包同时支持amd、cjs和iife三种格式system- SystemJS 模块加载器的原生格式(别名:systemjs)
banner:用于在 bundle 顶部添加一个字符串,或者在构建结果末尾添加一个字符串(了解即可)
const banner =
'/*!\n' +
` * Vue.js v${version}\n` +
` * (c) 2014-${new Date().getFullYear()} Evan You\n` +
' * Released under the MIT License.\n' +
' */'
结束了
还有一点在scripts目录下,你会看到一个weex文件,说明了vue在移动端应用上代码支持他,相比较其他来说,优势明朗