vue源碼是基於Rollup構建的,它的構建相關配置都在script目錄下。
構建腳本
通常一個基於NPM託管的項目都會有一個package.json文件,它是對項目的描述文件,它的內容實際上是一個標準的JSON對象。
我們通常會配置script字段作爲NPM的執行腳本,vue.js源碼構建的腳本如下
{
"script": {
"build": "node scripts/build.js",
"build:ssr": "npm run build -- web-runtime-cjs,web-server-renderer",
"build:weex": "npm run build -- weex"
}
}
這裏總共有3條命令,作用都是構建vue.js,後面2條是在第一條命令的基礎上,添加一些環境參數。
當在命令行運行npm run build 的時候,實際上會執行 node scripts/build.js ,接下來我們來看看它實際是怎麼構建的。
構建過程
我們對於構建過程分析是基於源碼的,先打開構建的入口js文件,在scripts/build.js中:
let builds = require('./config').getAllBuilds()
// filter builds via command line arg
if (process.argv[2]) {
const filters = process.argv[2].split(',')
builds = builds.filter(b => {
return filters.some(f => b.output.file.indexOf(f) > -1 || b._name.indexOf(f) > -1)
})
} else {
// filter out weex builds by default
builds = builds.filter(b => {
return b.ou