在另一个仓库中导入vue-cli应用程序时出错

时间:2018-04-16 18:49:18

标签: vue.js vue-cli

我使用vue-cli 3创建了一个组件库,然后将其拉入另一个repo以使用这些组件。现在我收到了错误:

Uncaught Error: Module build failed: Error: Couldn't find preset "@vue/app" relative to directory "/{path_to_project}/node_modules/{vue_cli_app}"
    at {path_to_project}/node_modules/babel-core/lib/transformation/file/options/option-manager.js:293
    at Array.map (<anonymous>)
    at OptionManager.resolvePresets ({path_to_project}/node_modules/babel-core/lib/transformation/file/options/option-manager.js:275)
    at OptionManager.mergePresets ({path_to_project}/node_modules/babel-core/lib/transformation/file/options/option-manager.js:264)
    at OptionManager.mergeOptions ({path_to_project}/node_modules/babel-core/lib/transformation/file/options/option-manager.js:249)
    at OptionManager.init ({path_to_project}/node_modules/babel-core/lib/transformation/file/options/option-manager.js:368)
    at File.initOptions ({path_to_project}/node_modules/babel-core/lib/transformation/file/index.js:212)
    at new File ({path_to_project}/node_modules/babel-core/lib/transformation/file/index.js:135)
    at Pipeline.transform ({path_to_project}/node_modules/babel-core/lib/transformation/pipeline.js:46)
    at transpile ({path_to_project}/node_modules/babel-loader/lib/index.js:50)
    at Object.module.exports ({path_to_project}/node_modules/babel-loader/lib/index.js:175)
    at {path_to_project}/node_modules/babel-core/lib/transformation/file/options/option-manager.js:293
    at Array.map (<anonymous>)
    at OptionManager.resolvePresets ({path_to_project}/node_modules/babel-core/lib/transformation/file/options/option-manager.js:275)
    at OptionManager.mergePresets ({path_to_project}/node_modules/babel-core/lib/transformation/file/options/option-manager.js:264)
    at OptionManager.mergeOptions ({path_to_project}/node_modules/babel-core/lib/transformation/file/options/option-manager.js:249)
    at OptionManager.init ({path_to_project}/node_modules/babel-core/lib/transformation/file/options/option-manager.js:368)
    at File.initOptions ({path_to_project}/node_modules/babel-core/lib/transformation/file/index.js:212)
    at new File ({path_to_project}/node_modules/babel-core/lib/transformation/file/index.js:135)
    at Pipeline.transform ({path_to_project}/node_modules/babel-core/lib/transformation/pipeline.js:46)
    at transpile ({path_to_project}/node_modules/babel-loader/lib/index.js:50)
    at Object.module.exports ({path_to_project}/node_modules/babel-loader/lib/index.js:175)
    at Object.__webpack_exports__.a (aggregation.bundle.js:13)
    at __webpack_require__ (bootstrap ec9b411d2dc4def5406f:54)
    at Object.<anonymous> (select.vue:1)
    at __webpack_require__ (bootstrap ec9b411d2dc4def5406f:54)
    at Object.Array.concat.path (vue-multi-select.component.js:11)
    at __webpack_require__ (bootstrap ec9b411d2dc4def5406f:54)
    at Object.Array.concat._extends (app-files.generated.js:86)
    at __webpack_require__ (bootstrap ec9b411d2dc4def5406f:54)
    at Object.Array.concat.module.exports (app.js:111)
    at __webpack_require__ (bootstrap ec9b411d2dc4def5406f:54)

这来自vue-cli项目中自动生成的.babelrc

{
  "presets": [
    "@vue/app",
    "vue"
  ]
}

有没有办法更改.babelrc引用,以便在其他地方导入时可以使用它?

1 个答案:

答案 0 :(得分:0)

我不相信正确的方法是从导入库的项目中引用.babelrc。我的解决方案是:

  1. 将库之前透明化为导出
  2. 构建到dist目录
  3. 将构建的dist目录导入到使用该库的项目中。
  4. 我相信babel可以做一些简单的事情,比如OpenSessionInViewInterceptor来构建目录,你可以看到文档here