2016-09-22 5 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

問題を追跡する最も簡単な方法は、ファイル/node_modules/webpack/lib/TemplatedPathPlugin.jsconsole.log(path)を与えることです。

私は最近、同じエラーを得た - そして私は、そのファイルに行って、replacePathVariables機能変更:

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

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

を、私は私が誤って配列を持つoutput.publicPathオプションを設定していることが分かりました

の代わりに(文字列):

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

関連する問題