首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Webpack resolve.alias中断以@为前缀的库的导入

Webpack resolve.alias中断以@为前缀的库的导入
EN

Stack Overflow用户
提问于 2019-05-18 18:09:51
回答 1查看 795关注 0票数 1

我正在做一个Vue项目,在那里我尝试使用VuexORM。在初次安装时,我收到了一个奇怪的错误:Module not found: Error: Can't resolve '../uex-orm/core'

它应该是../@vuex-orm/core (注意它缺少了@和'v‘字符)。

我仔细检查了一下,我没有把我的进口产品打错。然后我意识到我实现了一个别名,这样我就可以用@符号从src/目录导入,我认为这解释了这个奇怪的导入。我一定是把webpack或者.babelrc配置错了(很可能是因为我两者都很糟糕)。

我应该如何设置我的webpack.config.js和/或.babelrc,以便我既可以为导入使用别名,也可以使用导入库(如@vuex-orm )?

webpack.config.js

代码语言:javascript
复制
const path = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');
const Dotenv = require('dotenv-webpack');

module.exports = {
  mode: 'development',
  resolve: {
    extensions: ['.js', '.vue'],
  },
  module: {
    rules: [
      {
        test: /\.vue?$/,
        exclude: /(node_modules)/,
        use: 'vue-loader',
      },
      {
        test: /\.js?$/,
        exclude: /(node_modules)/,
        use: 'babel-loader',
      },
      {
        test: /\.css$/,
        use: [{ loader: 'style-loader' }, { loader: 'css-loader' }],
      },
      {
        test: /\.sass$/,
        use: [
          'vue-style-loader',
          'css-loader',
          {
            loader: 'sass-loader',
            options: {
              indentedSyntax: true,
            },
          },
        ],
      },
      {
        test: /\.svg$/,
        loader: 'svg-inline-loader',
      },
    ],
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: './src/index.html',
    }),
    new Dotenv(),
  ],

  devServer: {
    historyApiFallback: true,
  },
  externals: {
    // global app config object
    config: JSON.stringify({
      apiUrl: 'http://localhost:3000',
    }),
  },
}

.babelrc

代码语言:javascript
复制
{
  "presets": [
      "env",
      "stage-0"
  ],
  "plugins": [
    ["babel-plugin-root-import", {
      "rootPathSuffix": "src/",
      "rootPathPrefix": "@"
    }]
  ]
}
EN

回答 1

Stack Overflow用户

发布于 2019-05-18 18:40:40

我再次查看了babel-plugin-root-import的文档,要么错过了它,要么是最近编辑的,但它们提到:

如果您不喜欢~语法,您可以使用自己的符号(例如#符号或\或任何您想要的)。不建议使用@,因为NPM的最新版本允许在包名中使用@。~是默认的,因为它不太可能与任何东西发生冲突(而且无论如何也不会扩展到家里)。

因此,通过并将我的导入从@/_components/User'更改为~/_components/User是有效的!

希望这能帮到别人!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56201623

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档