Vuejs 模块未找到错误无法使用 webpack 解析 '@/components/ 错误

Pau*_*ul 7 webpack vuejs2

我找不到这个问题的答案,除了显然它与 webpack 配置有关,我对此一无所知。

我想使用以下方式进入运行 webpack-simple 模板 @/components/ 的应用程序目录,但对我来说它只会生成一个错误

找不到模块错误无法解析“@/components/ 错误”

根据我所做的阅读,我需要在 webpack 配置中设置一些东西才能使其工作,但我找不到它是什么,有人可以帮忙吗?

目前我在开发服务器中尝试这个,但显然热衷于确保它也能在生产中工作

我发现这段 js 代码可以实现我想要的功能,但不知道如何使用以前从未使用过的 webpack 设置来实现此功能

谢谢

{
  "compilerOptions": {
      "baseUrl": ".",
      "paths": {
          "@/*": [
              "src/*"
          ]
      }
  }
}
Run Code Online (Sandbox Code Playgroud)

谢谢

Mat*_*ias 5

我使用这个模板: https: //github.com/vuejs-templates/webpack

在已经创建的 webpack.base.conf 中,这是导出的配置对象的一部分(我包含的不仅仅是与给定上下文相关的内容):

    module.exports = {
      context: path.resolve(__dirname, '../'),
      entry: {
        app: './src/main.js',
      },
      plugins: [
        // make jquery available for all modules
        new webpack.ProvidePlugin({
          $: 'jquery',
          jQuery: 'jquery',
        })
      ],
      output: {
        path: config.build.assetsRoot,
        filename: '[name].js',
        publicPath: process.env.NODE_ENV === 'production'
          ? config.build.assetsPublicPath
          : config.dev.assetsPublicPath
      },
      resolve: {
        extensions: ['.js', '.vue', '.json'],
        alias: {
          'vue$': 'vue/dist/vue.esm.js',
          '@': resolve('src'),
        }
      },
Run Code Online (Sandbox Code Playgroud)

这是可能对您有帮助的部分:

      resolve: {
        extensions: ['.js', '.vue', '.json'],
        alias: {
          'vue$': 'vue/dist/vue.esm.js',
          '@': resolve('src'),
        }
      },
Run Code Online (Sandbox Code Playgroud)

现在在我的导入中,我只是写了类似的东西

    import myModule from '@/fileInSrcFolder';
Run Code Online (Sandbox Code Playgroud)

其中@是根文件夹内的src文件夹。

为了完成,配置文件位于根文件夹中的一个文件夹中,解析函数如下所示:

    function resolve (dir) {
      return path.join(__dirname, '..', dir)
    }
Run Code Online (Sandbox Code Playgroud)