You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

在其他仓库导入vue-cli 3组件库时遇模块构建错误求助

解决Vue CLI 3组件库引入后Babel预设"@vue/app"找不到的问题

这个报错本质是Babel的预设查找路径问题——你用Vue CLI 3创建的组件库,它的Babel配置依赖@vue/app预设,但这个预设只安装在组件库自己的node_modules里。当你把组件库引入到另一个项目时,Babel会从当前项目的根目录去查找这个预设,自然就找不到啦。

下面给你几个可行的解决办法:

方法1:在主项目中安装@vue/app相关依赖

直接在你要引入组件库的项目里安装对应依赖,命令如下:

npm install @vue/cli-plugin-babel --save-dev
# 或者用yarn
yarn add @vue/cli-plugin-babel --dev

这样Babel就能在主项目的node_modules里找到@vue/app预设了,操作简单直接。

方法2:修改组件库的Babel配置,脱离对@vue/app的依赖

如果你不想让主项目额外安装依赖,可以调整组件库的Babel配置:

  1. 打开组件库根目录的babel.config.js(如果是.babelrc也适用)
  2. 把原来的presets: ['@vue/app']替换成更通用的预设组合,示例如下:
module.exports = {
  presets: [
    ['@babel/preset-env', {
      targets: {
        browsers: ['last 2 versions', 'ie >= 11']
      }
    }],
    '@vue/babel-preset-jsx' // 如果你用到了JSX语法才需要加这个
  ]
}

然后在组件库中安装对应的依赖:

npm install @babel/preset-env @vue/babel-preset-jsx --save-dev

这样组件库的Babel配置就不再依赖@vue/app,打包后的组件在主项目里能正常被解析。

方法3:将组件库打包成独立可引入的格式

Vue CLI 3提供了专门的库打包命令,你可以把组件库打包成无需额外编译的格式,主项目直接引入打包后的文件就不会有Babel问题了:
在组件库的package.json里添加打包脚本:

{
  "scripts": {
    "build:lib": "vue-cli-service build --target lib --name your-lib-name src/index.js"
  }
}

执行打包命令:

npm run build:lib

打包完成后,dist目录会生成对应的库文件,你可以直接把这些文件发布或者引入到主项目中使用。


内容的提问来源于stack exchange,提问作者Ryan Leahy

火山引擎 最新活动