Vue.js从webpack捆绑包中排除文件夹

lymnna71  于 2022-11-13  发布在  Webpack
关注(0)|答案(2)|浏览(404)

我遇到了一个关于webpack的非常简单的问题。我有一个使用vue-cli创建的简单的Vue.js应用程序。
我创建了要从包中排除的文件夹public/Reports(该文件夹包含子文件夹和PDF)。
我的项目结构是标准的:

├── dist/
│   └── (I don't want "Reports" folder here)
├── public/
│   ├── index.html
|   ├── Reports (folder that I need during development, it contains subfolders and PDfs)
│   │   └── subfolder1
│   │       └── file1.pdf
│   └── ...
├── src/
│   └── ...
├── .babel.config.js
├── .eslintrc.js
├── package.json
├── prettier.config.js
├── vue.config.js
└── README.md

我尝试排除vue.config.js中的Reports文件夹,但不起作用:

const path = require("path");
const webpack = require("webpack");

module.exports = {
    configureWebpack: {
        module: {
            rules: [
                {
                    test: /\.pdf$/,
                    exclude: [
                        path.resolve(__dirname, "public/Reports"),
                    ],
                },
            ],
        },
    },
};

如何将此文件夹(和子文件夹)排除在包中?

6xfqseft

6xfqseft1#

对于最新的Vue2版本,正确的代码为:

chainWebpack: (config) => {
    config.plugin("copy").tap(([options]) => {
      options.patterns[0].globOptions.ignore.push("**/node_modules/**")
      console.log(JSON.stringify(options.patterns[0].globOptions))
      return [options]
    })
  },
bcs8qyzn

bcs8qyzn2#

您需要点击复制插件。

// vue.config.js
module.exports = {
  chainWebpack: (config) => {
    config.plugin("copy").tap(([options]) => {
      options[0].ignore.push("Reports/**");
      return [options];
    });
  },
};

相关问题