vue.config.js配置打包忽略指定目录

我在chainWebpack里面写了config.module.rule('vue').exclude.add('/src/'),没有生效

参考GPT和自己的思路,首先,让我们来看一下您在 chainWebpack 中添加的规则:

config.module.rule('vue').exclude.add('/src/')

这条规则的意思是将 .vue 文件排除在 /src/ 目录之外。如果您的 .vue 文件在 /src/ 目录中,则此规则将不会应用于它们。
但是,根据您提供的信息,我们无法确定您的问题是什么。以下是一些可能导致此规则未生效的原因:

规则应该应用于 include 中而不是 exclude。
如果您想要排除 /src/ 目录之外的 .vue 文件,您应该在 include 中指定要包括的目录,而不是在 exclude 中指定要排除的目录。请尝试以下代码:

config.module.rule('vue').include.add('/src/')

规则被其他规则覆盖。
如果您已经添加了另一个规则来处理 .vue 文件,它可能会覆盖您的规则。请确保您的规则在其他规则之前应用。例如:

config.module.rule('my-vue-rule')
  .test(/\.vue$/)
  .include.add('/src/')
  .end()
  .use('vue-loader')
  .loader('vue-loader')

在这个例子中,我们创建了一个名为 my-vue-rule 的规则,它仅处理 .vue 文件,并将其限制为 /src/ 目录。

chainWebpack 中的代码有语法错误。
如果您的代码存在语法错误,您的规则可能无法应用。请确保您的代码没有任何拼写错误或语法错误。请注意,以上列出的原因只是一些可能导致规则未生效的原因,并不是详尽无遗的列表。

该回答引用ChatGPT

检查你的 chainWebpack 配置是在正确的位置。例如,在 Vue CLI 3.x 中,你应该在 vue.config.js 文件中的 configureWebpack 属性中配置 chainWebpack,而不是在 webpack.config.js 文件中。

检查你的 chainWebpack 配置是否正确。例如,你应该使用 exclude() 方法而不是 add() 方法来排除指定的目录。

下面是一个可能的修改,你可以尝试更新你的 chainWebpack 配置:


// vue.config.js

module.exports = {
  configureWebpack: {
    chainWebpack: (config) => {
      config.module.rule('vue')
        .exclude.add(/src/)
        .end();
    },
  },
};

在这个配置中,我们使用 exclude() 方法,将 /src/ 目录排除在 Vue 组件解析之外。

最后,确保你重新启动了开发服务器。在修改了 vue.config.js 配置文件之后,你需要重新启动服务器才能使更改生效。