正确的方法来创作依赖父构建工具的Vue组件

Mar*_*rty 7 javascript npm vue.js vue-component vuejs2

我想这个问题适用于其他框架,这些框架有一些依赖于特定构建工具(使用JSX的React组件等)的插件/组件生态系统.Vue只是我的用例.

我以单个.vue文件的形式编写了几个Vue组件,这些组件发布到NPM.在package.json这些组件没有列出任何依赖关系,因为他们自己意图使用的WebPack,VUE装载机,SASS装载机等一个父项目内起作用这是一个这样的组件的一个例子.

我不确定声明这些组件依赖于具有所述构建工具的父包的最佳方式.我不相信这devDependencies是他们的正确位置,因为组件本身没有依赖于这些的开发步骤.peerDependencies似乎更合适,但我再也不相信这与我想要达到的目标完全匹配.

浏览awesome-vue存储库中的许多组件,我看不到任何使用,peerDependencies并且devDependencies看起来与特定组件本身的开发相关.

创作这些组件的正确方法是什么?这几乎就像我需要像" peerDevDependencies" 这样的东西.

gur*_*het 1

不幸的是,大多数组件都已编译分发。

\n\n

在我看来,分发组件的最佳方法是编写组件的main原始文件。.vue

\n\n

您不应该\xe2\x80\x99指定使用任何特定工具,选择您的包的开发人员应该可以自由使用他们想要的工具,无论是Browserify还是Rollup(或Webpack)。原始格式允许他们使用他们想要的任何工具并使用他们想要的任何 Vue 版本(当然在一定范围内).vue来编译组件。.vue

\n\n

此外,我喜欢做的是让用户能够立即使用该组件,甚至在浏览器中,只需 Vue 作为<script>依赖项。为此,您必须编译它,是的,指定VuepeerDependency,因为页面中需要 it\xe2\x80\x99s 。

\n\n

您可以将元信息放入其中,package.json告诉 CDN 在浏览器中获取编译版本,这非常方便,因此用户只需指定包的名称,而不必担心文件名或版本。

\n