Vue - 更好地发布.vue文件或编译组件?

时间:2018-03-21 10:58:53

标签: node.js npm vue.js vuejs2 frontend

编写自定义组件时,最好直接发布.vue文件还是使用webpack / other-bundling-tools发布编译版本?

奖励:是否有关于发布自定义组件时要遵循的惯例的官方文档?

编辑:这两种方法的优点和缺点是什么?

1 个答案:

答案 0 :(得分:4)

我已经发布了一些开源项目,根据经验,我可以说最好将代码发布 - 或者更确切地说,设置主要入口点 - 作为已编译的可分发项,原因如下:

首先,通过输出UMD模块,您将创建一个适用于所有环境(webpack,browserify,CDN,AMD)的可分发版,它就像在webpack配置中添加以下内容一样简单:

output: {
    ...
    library: 'MyPackageName',
    libraryTarget: 'umd',
    umdNamedDefine: true
},

其次,大多数使用webpack的开发人员会通过执行以下操作来排除babel-loader编译其node_modules文件夹中的脚本:

{
  test: /\.js$/,
  loader: 'babel-loader',
  exclude: /node_modules/

}

因此,如果开发人员需要自己编译代码,并且项目中的任何内容都不是使用.vue的{​​{1}}文件(例如mixin),那么您需要告诉开发人员将ES2015应用于babel-loader配置中的项目文件夹。

对于必须编译项目的webpack开发人员,您需要将browserifyvueify作为转换添加到babelify(他们实际上无法设置此项他们自己)并告诉那些开发人员那些是依赖项并让他们设置一个合适的package.json文件。

所有这些设置都可能是.babelrc的噩梦,许多人对他们的构建过程知之甚少,所以不会知道排除,他们不会知道变换,他们只会得到一堆错误并删除您的包或在您的仓库上产生问题。

这仅适用于两个最常见的构建过程,您仍然可能需要devs并且您仍然希望允许使用CDN模块的人使用您的软件包,因此UMD模块是要走的路。

尽管如此,您仍然应该自己分发AMD文件,如果他们有高级配置要求,也允许开发人员编译您的项目。