【发布时间】:2019-06-03 12:07:17
【问题描述】:
我是 Vue 的新手,也许我的问题是微不足道的。
我必须做什么:
我想创建一个 Vue 组件,我可以将它放入 NPM 私有 repo 中,然后使用 bundle.js 文件之类的东西将其导入其他项目
TLDR:
无法通过 vue-cli-service build --target lib/wc 导入 vue 组件构建。将我的组件导入到"export 'HelloWorld' was not found in '../node_modules/hello-world'
长版:
我已尽可能多地提出问题和项目。所有项目均由 vue-cli 构建,无需任何额外更改。
- 新建默认项目
vue create hello-world
- 新建默认项目
- 默认情况下,我们这里有第一个组件 -
src/component/HelloWorld,对于本示例,这是我们要导出的组件
- 默认情况下,我们这里有第一个组件 -
- 使用 vue-cli-service 尝试制作可导出文件。
-
3a。
vue-cli-service build --target lib --name vue-test ./src/components/index.jsindex.js 在哪里import Vue from 'vue'; import HelloWorld from './HelloWorld.vue'; const Components = { HelloWorld, }; Object.keys(Components).forEach((name) => { Vue.component(name, Components[name]); }); export default Components; 3b。或者直接vue文件
vue-cli-service build --target wc --name vue-test 'src/components/HelloWorld.vue'
在这两种情况下,vue-cli-service 在/dist 文件夹中生成我的文件,我想相信这个文件是正确的
在这两种情况下,我都无法使用 import {HelloWorld} from 'path/to/folder/or/file'; 或 require('path/to/folder/or/file') 将此组件导入另一个 vue 项目。捆绑文件似乎没有导出成员。
我做错了什么?应该使用build --target wc 还是build --target lib?
如果您不想创建新应用来重现此问题,您可以从 https://github.com/okosowski/vueTest 下载 repo(项目开始使用 vue cli)。
git clonenpm install-
npm run build-bundle-lib或npm run build-bundle-lib -
npm link或者只是将文件复制到退出的 vue 项目中 - 尝试导入/显示
HelloWorld
如果有任何帮助,我将不胜感激!!! 谢谢
节点 v10.14.2
npm 6.4.1
vue-Cli 2.9.6(3.3.0 相同)
https://github.com/okosowski/vueTest/blob/master/package.json中的其他使用版本
【问题讨论】:
-
嗨,Oskar,我的问题和你很相似。这是我的lib。我的只是有时工作,这很奇怪。得到那个
unknown custom element: <S2SCurrencyInput> - did you register the component correctly?。你找到解决办法了吗?我已经尝试过这里发布的答案,但没有运气。 -
@JeremyWalters 抱歉,这次我离线了。在我的情况下,解决方案与导出的组件/文件名/构建组件中的名称相同。你能分享你的回购吗?
-
嗨,奥斯卡,我找到了解决方案。将其用作插件。所以在任何你想使用它的项目中。导入它并调用
vue.use(your_repo)。我的回购github.com/payfind/shop2shop-vue-components
标签: vue.js vuejs2 web-component vue-cli lib