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

ich diesen Fehler, wenn webpack läuft - es scheint, dass path ist ein Objekt eher als eine Zeichenfolge, und das ersetzen Methode ist daher nicht gefunden. Kann jemand diesen Fehler aufklären? Hier ist mein webpack.config.js:Typeerror: path.replace ist keine Funktion

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

Ich glaube, Sie haben Ihre Konfiguration exportieren: module.exports = require ('webpack. config.js ') –

+1

[Docs] (http://webpack.github.io/docs/configuration.html#output-path) "output.path Das Ausgabeverzeichnis als absoluter Pfad (erforderlich)." –

Antwort

0

Der einfachste Weg, um das Problem auf die Spur von console.log(path) auf Datei /node_modules/webpack/lib/TemplatedPathPlugin.js geben ist.

ich denselben Fehler vor kurzem bekam - dann ging ich zu dieser Datei und ändern Sie die replacePathVariables Funktion:

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

Ich fand heraus, dass ich versehentlich output.publicPath Option mit Array festgelegt wurde:

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

Statt (Zeichenfolge):

output: { publicPath: '/dist/' }

11

Überprüfen Sie Ihre Plugin-Konfiguration. Webpack 2 ändert das ExtractTextPlugin geringfügig. Es erwartet, dass alle Parameter in ein Objekt eingepackt werden, daher ist Ihr erster Parameter jetzt der Wert filename für dieses Objekt und keine Zeichenfolge.

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

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

Mehr Informationen im README