首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将参数传递给基础Webpack配置

将参数传递给基础Webpack配置
EN

Stack Overflow用户
提问于 2018-10-01 15:49:03
回答 2查看 3.2K关注 0票数 4

我们正试图让webpack建立一个基地和多个入口的秘密。基础完成了几乎所有的工作,只包含了一些额外的文件,这取决于构建目的地。我们为基地设置了如下条目:

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

module.exports = (env) => {
    return {
        entry: {
            ...
        },
        output: {
            ...
        },
        optimization: {
            ...
        },
        module: {
            ...
        },
        resolve: {
            ...
        },
        plugins: [
            ...
        ]
    };
};

该条目的设置如下:

代码语言:javascript
复制
const webpack = require('webpack');
const merge = require('webpack-merge');
const UglifyJSPlugin = require('uglifyjs-webpack-plugin');
const common = require('./webpack.common.js');
const CopyWebpackPlugin = require('copy-webpack-plugin');
const path = require('path');

module.exports = (env) => {    
    return merge(common(env), {
        mode: 'production',
        plugins: [
            ...
        ]
    });
}

这在我的机器上运行得很好,但是当其他人运行它时,他们得到:

TypeError:公共不是一个函数

这是将选项传递到条目和基础webpack文件中的最佳方式吗?这一切似乎都很好,在本地和构建所有正确的,它运行。我们使用webpack.DefinePlugin使传入的条目在javascript应用程序中可用。

EN

回答 2

Stack Overflow用户

发布于 2018-10-05 10:50:47

当我删除存储库时,只需张贴最小的repro设置,以供将来参考(这对我来说很好)。这个问题是一个合并问题,与webpack无关。

代码语言:javascript
复制
// file: src/hello-world.js
module.exports = () => {
    console.log("Hello, world!");
}

// file: src/index.js
const helloWorld = require('./hello-world');
helloWorld();

// file: webpack.common.js
module.exports = (env) => {
    console.log("./webpack.common: " + env + " was passed for argument 'env'.");
    return {
        mode: env
    }    
};

// file: webpack.config.js
const webpack = require('webpack');
const merge = require('webpack-merge');
const common = require('./webpack.common');

module.exports = (env) => {
    return merge(common(env), {});
};

// file: package.json
{
  "name": "webpack-param-repro",
  "version": "1.0.0",
  "description": "A minimal app to reproduce the problem in https://stackoverflow.com/q/52594681/824495",
  "main": "dist/main.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "Mehmet Seckin",
  "repository": {
    "type": "git",
    "url": "https://github.com/seckin92/webpack-param-repro"
  },
  "license": "ISC",
  "devDependencies": {
    "webpack": "^4.20.2",
    "webpack-cli": "^3.1.2",
    "webpack-merge": "^4.1.4"
  }
}
票数 4
EN

Stack Overflow用户

发布于 2018-10-05 10:54:23

这里是一个很好的替代解决方案webpack-合并。不要重新发明轮子。它已经存在了:)

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

https://stackoverflow.com/questions/52594681

复制
相关文章

相似问题

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