TypeError:path.replace不是函数

bab*_*eii 4 javascript webpack

/node_modules/webpack/lib/TemplatedPathPlugin.js:72
        .replace(REGEXP_HASH, withHashLength(getReplacer(data.hash), data.hashWithLength))
         ^
Run Code Online (Sandbox Code Playgroud)

我在运行时遇到这个错误webpack- 它似乎path是一个对象而不是一个字符串,因此找不到替换方法.任何人都可以解释这个错误吗?这是我的webpack.config.js:

var webpack = require('webpack');
var path = require('path');

var basePath = 'app';
var outputFile = 'output.js';

var config = {

    entry: basePath + '/index.js',

    output: {
        path: basePath,
        filename: outputFile
    },

    resolve: {
        extensions: ['', '.js']
    },

    module: {
        loaders: [{
            test: /\.js$/,
            exclude: /node_modules/,
            loader: 'babel-loader',
            query: {
                presets: ['es2015']
            }
        }]
    }
};

module.exports = config;
Run Code Online (Sandbox Code Playgroud)

小智 11

检查您的插件配置.Webpack 2略微更改了ExtractTextPlugin.它希望所有参数都包含在一个对象中,因此您的第一个参数现在是filename该对象的值而不是字符串.

Webpack 1方式: new ExtractTextPlugin('[hash].css', {allChunks: true, disable: false}),

Webpack 2方式: new ExtractTextPlugin({filename: '[hash].css', allChunks: true, disable: false}),

README中的更多信息