2016-09-22 2 views
4
/node_modules/webpack/lib/TemplatedPathPlugin.js:72 
     .replace(REGEXP_HASH, withHashLength(getReplacer(data.hash), data.hashWithLength)) 
     ^

Я получаю эту ошибку при запуске webpack - кажется, что path является объектом, а не строка, а заменить метод поэтому не найден. Может ли кто-нибудь пролить свет на эту ошибку? Вот мой webpack.config.js:TypeError: path.replace не является функцией

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; 
+0

Я думаю, вы должны экспортировать конфигурации: module.exports = требуется ('Webpack. config.js ') –

+1

[Docs] (http://webpack.github.io/docs/configuration.html#output-path) "output.path Выходной каталог как абсолютный путь (обязательно)." –

ответ

0

Самый простой способ отследить проблему, давая console.log(path) на файл /node_modules/webpack/lib/TemplatedPathPlugin.js.

я получил ту же ошибку недавно - тогда я пошел в этот файл и изменить replacePathVariables функцию:

function replacePathVariables(path, data) { console.log(' ---> ', path) var chunk = data.chunk; var chunkId = chunk && chunk.id;

Я узнал, что я случайно был установлен output.publicPath вариант с массивом:

output: { publicPath: ['/dist/'] }

Вместо (строка):

output: { publicPath: '/dist/' }

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

Смежные вопросы