我已经发布了一些开源项目,根据经验,我可以说最好将您的代码发布 - 或者更确切地说,将主入口点设置为已编译的可分发文件,原因如下:
首先,通过输出 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/
}
因此,如果开发人员需要自己编译您的代码,并且您的项目中有任何不是使用 ES2015 的 .vue 文件(例如 mixin),那么您需要告诉开发人员应用 babel-loader到他们webpack 配置中的项目文件夹。
至于browserifydevelopers 必须编译您的项目,您需要将vueify 和babelify 作为转换添加到package.json(他们实际上无法自己设置)并告诉那些开发人员那些是依赖项并让他们设置适当的.babelrc 文件。
所有这些设置对于devs 来说可能是一场噩梦,许多人对他们的构建过程知之甚少,所以不知道排除,他们不知道转换,他们只会得到一堆错误和要么删除你的包,要么在你的 repo 上创建问题。
这只是两个最常见的构建过程,您可能仍然需要 CDN 并且您仍然希望允许使用 AMD 模块的人使用您的包,因此 UMD 模块是要走的路.
也就是说,您仍然应该自己分发 .vue 文件,如果开发人员有高级配置要求,这也将允许他们编译您的项目。