002-vuex项目是如何控制版本号的?

分析vuex源码,找到src/index.js,我们发现有这样子的段代码:

export default {
  ...
  version: '__VERSION__',
  ...
}

__VERSION__很明显是一个字符串,肯定是要正行替换的,接着我们又找到build/configs.js

  const config = {
    input: {
      input: opts.input,
      plugins: [
        replace({
          __VERSION__: version
        }),
        buble()
      ]
    },
    output: {
      banner,
      file: opts.file,
      format: opts.format,
      name: 'Vuex'
    }
  }

这里用了rollup的replace插件,将__VERSION__替换为变量version,接着我们查version从哪来?

const version = process.env.VERSION || require('../package.json').version

这里有两个来源,一个是node的环境变量,一个是拿package.json的version。

最后总结一下:
vuex代码里的version值来源于package.json定义的version。代码里version先用固定的字符串,然后构建的时候进行替换,这样子的好处是:npm的版本号和代码里的版本可以统一管理。

你可能感兴趣的:(002-vuex项目是如何控制版本号的?)