【问题标题】:Export two components as library将两个组件导出为库
【发布时间】:2020-02-20 18:00:51
【问题描述】:

我有一个 TypeScript Vue 项目。在这个项目中,我有两个组件:Cookiebar 和 CookiebarOpener (CbOpener)。 我的目标是将这两个组件导出为一个库,以便我可以在三个不同的网站上使用它们,例如:

<p>Some website content</p>
<div id="app">
    <cookiebar></cookiebar>
    <span>Other website content<span>
    <cbopener>
       <span>Open layer</span>
    </cbopener>
</div>

我尝试通过以下方式导出库 "build-cookiebar": "vue-cli-service build --target lib --name cookiebar src/components/cookiebar.vue src/components/cbopener.vue " 但只导出没有 cbopener 的 cookiebar。

你有什么猜测吗?

【问题讨论】:

    标签: vue.js vue-cli-3


    【解决方案1】:

    您的构建命令应该是:

    vue-cli-service build --target lib --name dummylib src/main.js
    

    你的 src/main.js 文件应该看起来像这样:

    import cookiebar from './src/components/cookiebar.vue'
    import cbopener from './src/components/cbopener.vue'
    
    export default {
      cookiebar,
      cbopener
    }
    

    我实际上已经写了一篇关于这个主题的完整帖子,你可以在这里找到:https://medium.com/@olivierpicault/create-a-vue-js-component-library-as-a-module-part-1-a1116e632751

    干杯

    【讨论】:

    • 感谢您在 medium 上发帖,但我遇到了 linter 错误:stackoverflow.com/questions/60670539/… 此处指出了同样的问题:medium.com/@michaelsperber01/… 您能告诉我如何克服这个问题吗?
    • 嗨@KrasnokutskiyEA 看起来你的问题得到了答案。抱歉回复晚了,刚刚看到你的评论。
    • 没关系,@Olivier Picault!不过,还有一个问题:当更改应用于DummyButton.vue 时,HMR 是否应该工作?在我的情况下,HMR 仅在将更改应用于 App.vue (sampleapp) 时才有效...因此,每次更改 DummyButton.vue 的代码时,我都应该完全重新安装 dummylibnpm unlink dummylib 然后再次链接以查看变化。这不是一个愉快的开发过程......
    • 是的@KrasnokutskiyEA 我也遇到了这个问题。两种可能性: - 您可以使用 yarn 链接(npm 应该存在相同的功能):classic.yarnpkg.com/en/docs/cli/link - 如果两个项目在同一个代表中,您可以使用 lerna:github.com/lerna/lerna 希望这会有所帮助
    猜你喜欢
    • 2018-11-11
    • 2023-01-20
    • 1970-01-01
    • 2018-10-09
    • 2019-07-17
    • 2018-10-20
    • 2019-09-17
    • 2018-09-10
    • 1970-01-01
    相关资源
    最近更新 更多