Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Vue-发布.Vue文件或编译的组件更好吗?_Node.js_Npm_Vue.js_Vuejs2_Frontend - Fatal编程技术网

Node.js Vue-发布.Vue文件或编译的组件更好吗?

Node.js Vue-发布.Vue文件或编译的组件更好吗?,node.js,npm,vue.js,vuejs2,frontend,Node.js,Npm,Vue.js,Vuejs2,Frontend,编写自定义组件时,最好直接发布.vue文件,还是使用webpack/其他捆绑工具发布编译版本 奖励:发布自定义组件时,是否有关于要遵循的约定的官方文档 编辑:这两种方法的优缺点是什么?我已经发布了一些开源项目,根据经验,我可以说最好将您的代码(或者更确切地说,设置主入口点)发布为可编译的可分发代码,原因如下: 首先,通过输出UMD模块,您正在创建一个可在所有环境(webpack、browserify、CDN、AMD)中工作的可分发模块,只需将以下内容添加到您的webpack配置中即可: outp

编写自定义组件时,最好直接发布
.vue
文件,还是使用webpack/其他捆绑工具发布编译版本

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


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

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

首先,通过输出UMD模块,您正在创建一个可在所有环境(webpack、browserify、CDN、AMD)中工作的可分发模块,只需将以下内容添加到您的webpack配置中即可:

output: {
    ...
    library: 'MyPackageName',
    libraryTarget: 'umd',
    umdNamedDefine: true
},
其次,大多数使用webpack的开发人员会通过执行以下操作将
babel loader
排除在其
node\u模块
文件夹中编译脚本:

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

因此,如果开发人员需要自己编译您的代码,并且您的项目中有任何文件不是使用
ES2015
(例如mixin)的
vue
文件,那么您需要告诉开发人员将
babel loader
应用到他们
webpack
配置中的项目文件夹中

对于需要编译项目的
browserify
开发人员,您需要添加
vueify
babelify
作为对
package.json
的转换(实际上他们自己无法设置)并告诉开发人员这些是依赖项,让他们设置一个适当的
.babelrc
文件

所有这些设置对于
开发人员来说都是一场噩梦,许多人对他们的构建过程知之甚少,所以他们不知道排除,他们不知道转换,他们只会得到一堆错误,或者删除你的包,或者在你的repo上产生问题

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


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

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

首先,通过输出UMD模块,您正在创建一个可在所有环境(webpack、browserify、CDN、AMD)中工作的可分发模块,只需将以下内容添加到您的webpack配置中即可:

output: {
    ...
    library: 'MyPackageName',
    libraryTarget: 'umd',
    umdNamedDefine: true
},
其次,大多数使用webpack的开发人员会通过执行以下操作将
babel loader
排除在其
node\u模块
文件夹中编译脚本:

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

因此,如果开发人员需要自己编译您的代码,并且您的项目中有任何文件不是使用
ES2015
(例如mixin)的
vue
文件,那么您需要告诉开发人员将
babel loader
应用到他们
webpack
配置中的项目文件夹中

对于需要编译项目的
browserify
开发人员,您需要添加
vueify
babelify
作为对
package.json
的转换(实际上他们自己无法设置)并告诉开发人员这些是依赖项,让他们设置一个适当的
.babelrc
文件

所有这些设置对于
开发人员来说都是一场噩梦,许多人对他们的构建过程知之甚少,所以他们不知道排除,他们不知道转换,他们只会得到一堆错误,或者删除你的包,或者在你的repo上产生问题

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


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

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