如何将多个输出文件夹创建到“ / dist /”文件夹中-Webpack

Web_Fer

在目标目录(/ dist /)中,我想创建三个目录,分别是IMAGES文件夹,CSS文件夹,JS文件夹以及多个输出目录,类似于以下屏幕截图:

捕获

我当前的条目如下所示:

在此处输入图片说明

webpack.config.js看起来像这样(这段代码可以正常工作,但它不会创建我想要的结构):

                var path = require("path");
            const webpack = require('webpack');
            const ExtractTextPlugin = require("extract-text-webpack-plugin");
            const FileManagerPlugin = require('filemanager-webpack-plugin');
            const extractCSS = new ExtractTextPlugin("css/[name]-1.0.0.css");
            const extractSASS = new ExtractTextPlugin("es/[name].css");
            module.exports = function(env) {
            var isProd = false;
            if (env != null && env.production) {
                isProd = true;
            }
            var jsDev = "./js/[name]-bundle.js";
            var jsProd = "./js/[name]-" + date_string() + ".js";
            var configJs = isProd ? jsProd : jsDev;
            return {
                context: path.resolve(__dirname, "src"),
                entry: {
                    specials: './js/specials.js',
                    checkout: './js/checkout.js',
                    mobile: './js/mobile.js',
                    screen: './js/screen.js',
                    custom: './js/app.js'
                },
                output: {
                    path: path.join(__dirname, "dist"),
                    filename: configJs
                },
                module: {
                    rules: [{
                        test: /\.css$/,
                        use: extractCSS.extract({
                            fallback: "style-loader",
                            use: "css-loader"
                        })
                    }, {
                        test: /\.scss$/,
                        use: extractSASS.extract({
                            fallback: "style-loader",
                            use: ["css-loader", "sass-loader"]
                        })
                    }, {
                        test: /\.(jpg|svg|png|gif)$/,
                        exclude: /fonts/,
                        loaders: [{
                            loader: 'file-loader',
                            options: {
                                name: '[name].[ext]',
                                outputPath: './images/',
                                publicPath: ''
                            }
                        }]
                    }, {
                        test: /\.(eot|svg|ttf|woff|woff2)$/,
                        exclude: /images/,
                        loader: 'file-loader',
                        options: {
                            name: 'fonts/[name].[ext]',
                            publicPath: ''
                        }
                    }]
                },
                plugins: [
                    extractSASS
                ]
            };

任何帮助将不胜感激,

谢谢,

咳嗽

专注于配置的这一部分:

var jsDev = "./js/[name]-bundle.js";
var jsProd = "./js/[name]-" + date_string() + ".js";

var configJs = isProd ? jsProd : jsDev;

output: {
  path: path.join(__dirname, "dist"),
  filename: configJs
},

如果将jsDev和jsProd更改为此:

var jsDev = "./[name]/[name]-bundle.js";
var jsProd = "./[name]/[name]-" + date_string() + ".js";

webpack将使用您的条目名称(特别,结帐等)创建文件夹。

如果您希望采用更高级的方法,可以查看webpack文档的以下部分:https ://webpack.js.org/configuration/output/#output-filename

特别是部分:

使用函数返回文件名:

module.exports = {
  //...
  output: {
    filename: (chunkData) => {
      return chunkData.chunk.name === 'main' ? '[name].js': '[name]/[name].js';
    },
  }
};

您可能还需要检查一些资源:

https://hackernoon.com/webpack-creating-dynamically-named-outputs-for-wildcarded-entry-files-9241f596b065

https://www.npmjs.com/package/webpack-entry-plus

https://www.npmjs.com/package/multiple-bundles-webpack-plugin

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用Webpack将src文件夹结构保存到dist文件夹中?

dist 文件夹中的 webpack 加载程序内联文件

不提供Webpack dist文件夹

使用 webpack 在 dist 文件夹中包含本地资源

在Webpack中构建dist文件夹之后,如何将bundle.js和css文件移动到statics文件夹中?

创建React应用程序-如何将pdf.worker.js文件从pdfjs-dist / build复制到项目的输出文件夹中?

Webpack.config如何仅将index.html复制到dist文件夹

如何将所有图像复制到 dist 文件夹而不是仅用于 webpack 5

Webpack dev img 文件夹总是指向 ./dist

Webpack4:将图像文件夹从“ SRC文件夹”移动/导入到“ DIST文件夹”

Webpack没有将图像复制到dist文件夹

为什么Webpack 4不能创建dist文件夹,而Webpack 2可以呢?

为什么文件夹dist(-prod)中的angular-cli webpack包含gzip文件而不包含gzip文件

如何将节点应用程序的内容“构建”到名为“ dist”的文件夹中

使用Webpack解决从node_modules到Dist文件夹的相对路径

如何配置Webpack从其src文件夹而不是dist加载模块?

将文件加载到dist文件夹中的问题

如何将CSS文件从源文件夹捆绑和复制到dist文件夹?

在grunt中,如何从dist文件夹中的干净文件夹中排除.git文件夹

tsc不创建dist文件夹

如何将 environment.json 文件复制到我的输出文件夹并在 Webpack 4 中使用输出文件?

如何将车把文件复制到dist文件夹

Webpack / Angular 不将引导程序发送到 dist 文件夹

ng serve不再使用新的angular-cli webpack beta生成dist文件夹

使用Webpack打包库时,lib和dist文件夹之间的区别?

Webpack在单独的文件夹中

获取要包含在 dist 文件夹中的文件

如何从Webpack JavaScript中的文件夹,子文件夹及其子文件夹动态获取文件

如何将vue dist文件夹部署到GlassFish 5?