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

運行webpack當我得到這個錯誤 - 它似乎path是一個對象,而不是字符串,因此替代方法是找不到的。任何人都可以闡明這個錯誤?這裏是我的webpack.config.js類型錯誤: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

我認爲你必須導出配置 new ExtractTextPlugin({filename: '[hash].css', allChunks: true, disable: false}),

更多信息。 config.js') –

+1

[Docs](http://webpack.github.io/docs/configuration.html#output-path)「output.path輸出目錄爲絕對路徑(必需)。」 –

回答

0

追查問題的最簡單方法是在文件/node_modules/webpack/lib/TemplatedPathPlugin.jsconsole.log(path)

我最近買了同樣的錯誤 - 然後我去了該文件,並修改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路:module.exports =需要('的WebPack:在README

相關問題