当前位置: 首页 > 知识库问答 >
问题:

无法将Vue组件库与npm链接一起使用

魏景龙
2023-03-14

我正在同时构建一个Vue应用程序和一个Vue组件库。所以,我想用npm链接设置库,这样我就不必一直发布我的库包并在我的主应用程序中重新安装它。

我的包将称为@company/vue。我可以将其发布到npm并在我的Vue应用程序中安装/使用它,如下所示:

import Vue from 'vue';
import VueComponents from '@company/vue';

Vue.use(VueComponents);

这很好用。我可以访问我电脑中的组件。vue文件等等。

但是,如果我按照标准步骤链接我的库:

  1. cd路径/到/库
  2. npm链接
  3. cd路径/到/应用程序
  4. npm链接@company/vue

在启动开发模式时,我收到以下警告:

export 'default' (imported as 'VueComponents') was not found in '@company/vue'

当然,页面中没有任何内容加载。

我必须想象我可能把它捆绑错了?

我的构建脚本如下所示:

vue-cli-service build --no-clean --target lib --name company-vue src/index.js

还有我的索引。它指的是:

import './index.scss';

import * as components from './components/index.js';

const CompanyVue = {
    install(Vue) {
        if (this.installed) {
            return;
        }

        this.installed = true;
        for (let name in components) {
            Vue.use(components[name]);
        }
    }
};

let GlobalVue = null;

if (typeof window !== 'undefined') {
    GlobalVue = window.Vue;
}
else if (typeof global !== 'undefined') {
    GlobalVue = global.Vue;
}

if (GlobalVue) {
    GlobalVue.use(Plugin);
}

export * from './components';
export default CompanyVue;

这是我见过的大多数图书馆的标准做法。再说一次,如果我从npm中取出包,效果很好。

这是我包裹里与捆绑有关的东西。json:

"files": [
  "dist",
  "src",
  "!src/**/*.spec.js",
  "!src/**/*.stories.js"
],
"main": "./dist/company-vue.common.min.js",
"module": "./dist/company-vue.umd.min.js",
"browser": "./dist/company-vue.umd.min.js",
"unpkg": "./dist/company-vue.umd.min.js"

最后,我的组件库的babel配置:

module.exports = {
    presets: ['@babel/preset-env'],
    env: {
        test: {
            presets: [[
                '@babel/preset-env',
                {
                    targets: { node: "current" }
                }
            ]]
        }
    }
}

共有1个答案

司空实
2023-03-14

我在这个问题上找到了一个解决方案:

只需将此添加到您的vue。配置。在你的项目中:

 configureWebpack: {
    resolve: {
        symlinks:false //npm link
    },
}
 类似资料:
  • 在过去的8个月里,我们使用vue 3和类组件构建了一个项目,但似乎不再维护它,我们希望逐渐切换到组合API,更准确地说是切换到设置脚本语法。 我们目前正在使用vue3。0.0和vue类组件8.0.0。 我们的目标是,因为我们必须不断向项目添加新功能,开始使用composition API创建新组件,同时保留那些已经使用vue class component编写的组件。而且,在我们继续的过程中,我们

  • 问题内容: 我的项目遇到了麻烦。谁能向我解释为什么我不能使用来访问? 下面是我的切入点的代码: 我正在尝试使用该方法访问“ 菜单” 组件中的设置。请参阅下面的 菜单 : 我真的很想知道为什么我可以使用来访问和值。我已经阅读了文档并寻找了其他资源,但是我还没有答案,但是我希望有办法可以做到。 问题答案: method中的第一个参数是包含任何属性和方法的对象,它不引用存在属性的React组件。 如果您

  • 我想知道如何将RadListView与nativescript vue结合使用。 当前我加载RadListView: 在组件中使用: 但我有一个错误未捕获引用错误:TKListViewDelegate未定义: My pakages.json:

  • 我目前正在将IntelliJ IDE用于复杂的GWT项目。我想在GWT的开发模式中利用JRebel,所以最近我为IntelliJ安装了JRebel插件,但在使其工作时遇到了麻烦。 基本上IntelliJ不具备在更改时自动编译应用程序的能力,所以每当您对代码进行更改时,我都必须进行编译- 信息:使用JavaC1.7.0_21编译java源代码信息:15个错误信息:0个警告信息:编译完成,9分钟5秒内

  • 问题内容: 如何将Go程序与C库接口? 我一直在浏览Go的源代码,但我仍然没有弄清楚。如果有人已经这样做了,请分享一下吗? 更新: 感谢@fserb,我从Go来源发布了一些文档: Cgo支持创建调用C代码的Go包。 用法:cgo [编译器选项] file.go 调用gcc编译软件包的C部分时,编译器选项将通过未解释的传递。 输入file.go是一个语法上有效的Go源文件,该文件导入伪包“ C”,然

  • 我最近安装了Xcode8测试版5。在我的MAC 10.11.6上的Appium 1.6.0测试版现在,在阅读了所有的论坛并使Appium启动并启动我的应用程序后,我无法找到如何用这个Appium 1.6.0测试版启动我的inspector和在我的应用程序中找到元素。如何使用appium 1.6.0测试版启动inspector?如果不能,我们如何找到xpath或找到元素??