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

标签 node.js npm vue.js vuejs2 frontend

编写自定义组件时,是直接发布 .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 开发人员必须编译您的项目,您需要将 vueifybabelify 作为转换添加到 package。 json(他们实际上不能自己设置)并告诉那些开发人员这些是依赖项并让他们设置适当的 .babelrc 文件。

所有这些设置对于 devs 来说可能是一场噩梦,许多人对他们的构建过程知之甚少,所以不知道排除,他们不知道转换,他们只会得到一堆错误,要么删除你的包,要么在你的 repo 上创建问题。

这只是两个最常见的构建过程,您可能仍然需要一个 CDN 并且您仍然希望允许那些使用 AMD 模块的人使用您的包,因此 UMD 模块是最佳选择。

也就是说,您仍然应该自己分发 .vue 文件,如果开发人员有高级配置要求,这也将允许他们编译您的项目。

关于node.js - Vue - 发布 .vue 文件或编译组件更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49404533/

相关文章:

javascript - 为什么我没有得到 babeljs 的导入建议

node.js - npm ERR cb() 从未调用

vue.js - 如何重置 vue-infinite-loading 元素?

vue.js - npm build(nuxt build)不使用nuxt spa模式在amplify(aws codebuild)中创建dist文件夹

node.js - req.headers.origin 未定义

node.js - 没有html的Chartjs导出图表

git - 为不在 Git Bash 中的 git 配置 SSH key

node.js - npm 审计修复没有改变任何东西

javascript - Vuejs : how do you pass class(classes) to template?

javascript - websocket (socket.io) 上的协作白板( Canvas )圆圈