【问题标题】:Vue - Better to publish .vue file or a compiled component?Vue - 更好地发布 .vue 文件或已编译的组件?
【发布时间】:2018-03-21 10:58:53
【问题描述】:

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

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

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

【问题讨论】:

  • 我希望这主要是基于意见,但为什么不两者兼而有之?除了其他地方的 .vue 文件之外,还提供一个带有编译版本的 dist 文件夹。没有我知道的官方文件。
  • 这两种方法的优缺点是什么?

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


【解决方案1】:

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

首先,通过输出 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 文件,如果开发人员有高级配置要求,这也将允许他们编译您的项目。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-06
    • 2020-07-15
    • 2017-10-28
    • 2019-10-22
    • 2017-11-14
    • 2017-10-02
    • 2018-03-14
    • 2019-06-13
    相关资源
    最近更新 更多