package.json 文件
//main和module指定了加载的入口文件,它们都指向运行时版的Vue,
// 一个包内同时发布了两种模块规范的版本。
"main": "dist/vue.runtime.common.js", //编译后生成的 ES5 版本的代码。
"module": "dist/vue.runtime.esm.js", //基于 ES6 模块规范的使用ES5语法书写的模块。
"script": {
...
"dev": rollup -w -c scripts/config.js --environment TARGET:web-full-dev
...
}
scripts/config.js
if (process.env.TARGET) {
module.exports = genConfig(process.env.TARGET)
} else {
exports.getBuild = genConfig
exports.getAllBuilds = () => Object.keys(builds).map(genConfig)
}
const builds = {
...
'web-full-dev': {
entry: resolve('web/entry-runtime-with-compiler.js'),
dest: resolve('dist/vue.js'),
format: 'umd',
env: 'development',
alias: { he: './entity-decoder' },
banner
},
...
}
// process.env.TARGET 有值所以执行 web-full-dev
vue文件分布
- compiler 编译器代码 将template编译为render
-
core 核心代码
- components 全局组件 (只有keep-alive) - global-api 静态属性 和方法 - instance 构造函数 放在Vue原型链上的属性和方法 - observer 双向绑定 - util 工具方法 - vdom 虚拟DOM
- platforms 平台代码
- server 服务端渲染
- sfc 解析.vue 文件
- share 通用代码
core/index
import Vue from './instance/index'
引入Vue的构造函数,在Vue.prototype上面挂载了两个只读属性$isServer和$ssrContext
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。