vue源码学习:基础配置

214 阅读1分钟

前期准备 1.下载源码,本地切换分支到vue@2.6

一. 查看目录分配

image.png

二. 查看package.json=》script

image.png

看到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插件引用,是否警告 如图展示

image.png

builds是一个作者分配的不同类型打包的对象配置

image.png

format:指向打包类型

  • amd - 异步模块定义,适用于 RequireJS 等模块加载器
  • cjs - CommonJS,适用于 Node 环境和其他打包工具(别名:commonjs
  • es - 将 bundle 保留为 ES 模块文件,适用于其他打包工具以及支持 <script type=module> 标签的浏览器(别名: esmmodule
  • iife - 自执行函数,适用于 <script> 标签。(如果你要为你的应用创建 bundle,那么你很可能用它。)
  • umd - 通用模块定义,生成的包同时支持 amdcjs 和 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在移动端应用上代码支持他,相比较其他来说,优势明朗

image.png