"与API架构不匹配的配置对象"使用webpack节点api

时间:2017-11-28 13:23:50

标签: node.js webpack

我得到了

  

Webpack已使用与API架构不匹配的配置对象进行初始化。     - 配置应该是一个对象。

当我尝试使用以下行通过webpack node api要求webpack配置时:

var webpack = require('webpack');
var webpackConfig = require('./webpack.config.js');
webpack(webpackConfig);

我可以使用npm cli在同一个文件夹中构建完全相同的webpack.config.js

webpack

这可能是什么问题?

webpack配置看起来像这样:

const webpack = require('webpack');
const path = require("path");
var ExtractTextPlugin = require("extract-text-webpack-plugin");

module.exports = function(env) {
    return {
        entry: path.resolve(__dirname, "src/index.js"),
        output: {
            filename: "./bundle.js",
            path: env!==undefined&&('output_path' in env)? env.output_path : path.resolve(__dirname, "bin")
        },
        externals: [
            "angular",
            "uuid",
            {
                "lodash": {
                    commonjs: "lodash",
                    amd: "lodash",
                    root: "_" // indicates global variable
                }
            },
            {
                "jquery": {
                    root: "$",
                    amd: "jquery",
                    commonjs: 'jquery'
                }
            },
            {
                "jquery-ui": {
                    amd: "jquery-ui",
                    commonjs: 'jquery-ui'
                }
            },
            {
                "Slick": {
                    root: "Slick",
                    amd: "Slick",
                    commonjs: 'Slick'
                }
            }
        ],
        devtool: 'source-map',
        resolve: {
            extensions: ['.webpack.js', '.web.js', '.js'],
        },
        module: {
            rules: [
                {
                    test: /\.html$/,
                    use: "html-loader"
                },
                {
                    test: /.*\.less$/,
                    use: ExtractTextPlugin.extract({
                        use:[ 'css-loader', 'less-loader' ],
                    })
                }
            ]
        },
        plugins: [
            new ExtractTextPlugin({ filename: 'module.css', disable: false, allChunks: true })
        ]
    };
};

1 个答案:

答案 0 :(得分:1)

我自己解决了这个问题:

我的webpack.config.js不是一个对象,而是一个函数 - 即错误字符串非常准确。所以我只需要将代码段更改为

var webpack = require('webpack');
var webpackConfig = require('./webpack.config.js')();
webpack(webpackConfig);

让它发挥作用。