编写自定义组件时,是直接发布 .vue
文件还是使用 webpack/other-bundling-tool 发布编译版本更好?
奖励:是否有关于发布自定义组件时要遵循的约定的官方文档?
编辑:这两种方法的优缺点是什么?
最佳答案
我已经发布了一些开源项目,根据经验我可以说最好发布你的代码 - 或者更确切地说,将主要入口点 - 作为编译的可分发文件发布,原因如下:
首先,通过输出一个 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
配置中的项目文件夹。
至于 browserify
开发人员必须编译您的项目,您需要将 vueify
和 babelify
作为转换添加到 package。 json
(他们实际上不能自己设置)并告诉那些开发人员这些是依赖项并让他们设置适当的 .babelrc
文件。
所有这些设置对于 devs
来说可能是一场噩梦,许多人对他们的构建过程知之甚少,所以不知道排除,他们不知道转换,他们只会得到一堆错误,要么删除你的包,要么在你的 repo 上创建问题。
这只是两个最常见的构建过程,您可能仍然需要一个 CDN
并且您仍然希望允许那些使用 AMD
模块的人使用您的包,因此 UMD 模块是最佳选择。
也就是说,您仍然应该自己分发 .vue
文件,如果开发人员有高级配置要求,这也将允许他们编译您的项目。
关于node.js - Vue - 发布 .vue 文件或编译组件更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49404533/