2017-03-03 4 views
0

Dies ist meine Datei webpack.config. Wenn ich Webpack starte, schreibt bundle.js korrekt in das Verzeichnis "/ dist/assets/bundle.js".Webpack Ausgabepfad Problem

Allerdings, wenn ich npm die Dateien beginnen laufen zu servieren, erhalte ich eine Fehlermeldung:

Error: output.path needs to be an absolute path or /.

Also ... wenn ich den Pfad absolut machen: "/dist/assets" oder path: __dirname + "/dist/assets" dann dient es die Dateien gut und emittiert bundle.js, aber es schreibt es tatsächlich nicht in meinem Projekt/dist/Assets Ordner.

Die Seite sieht gut aus und wenn ich Quelle anzeigen, sehe ich <script src="/assets/bundle.js"></script>, aber es existiert nur auf dem localhost (publicPath).

Wohin gehe ich falsch? Das Ziel für npm beginnt, das Paket in meinen Projektordner zu schreiben und es mit devServer zu versorgen.

var webpack = require("webpack"); 

module.exports = { 
    entry: "./src/index.js", 
    output: { 
    path: "./dist/assets", 
    filename: "bundle.js", 
    publicPath: "/assets" 
    }, 
    devServer: { 
    inline: true, 
    contentBase: "./dist", 
    port: 3000 
    }, 
    module: { 
    loaders: [{ 
     test: /\.js$/, 
     exclude: /(node_modules)/, 
     loader: ["babel-loader", "babel-loader?presets[]=latest,presets[]=stage-0,presets[]=react"] 
    }, { 
     test: /\.json$/, 
     exclude: /(node_modules)/, 
     loader: "json-loader" 
    }, { 
     test: /\.css$/, 
     loader: "style-loader!css-loader!autoprefixer-loader" 
    }, { 
     test: /\.scss$/, 
     loader: "style-loader!css-loader!autoprefixer-loader!sass-loader" 
    }] 
    } 
} 

Antwort

0

Verwenden path hierfür:

var path = require('path'); 

.... 

output: { 
    path: path.join(__dirname, './dist/assets'), 
+0

Danke. Dies funktioniert für devServer, aber ich muss Webpack separat ausführen, um die Datei tatsächlich zu schreiben. Wie würde ich es konfigurieren, damit npm start webpack ausführt und auch devServer dient? –

+0

Definieren Sie das Skript in 'package.json' für' npm start', es wird das 'wepack' für Sie ausgeführt, fügen Sie diese Zeile in' package.json': '" scripts "ein: { " start ":" webpack- dev-server --color --inline "}' –

+0

Hmmm ... es läuft immer noch nicht webpack (und schreibe die Datei), wenn ich es nicht getrennt von npm starte. Ich habe dies in meinem Paket.json {... "Skripte": { "Start": "webpack-dev-server --color --inline" } –

Verwandte Themen