2016-02-02 1 views
6

Grüße samt und sonders,Webpack nicht Bundle-Datei auf npm Laufe

Nach einer Reaktion gemacht zu haben Anwendung erzeugen, entschied ich mich in tiefer in Webpack zu tauchen. Ich bin ziemlich neu in der ganzen npm Automatisierungsszene und nachdem ich ein Kochbuch und verschiedene Tutorials befolgt habe, kann ich einfach nicht npm run dev meine Anwendung bündeln lassen. Es erzeugt ein bundle.js völlig in Ordnung, wenn ich webpack ausführen, aber was mich ansprach, war, dass Webpack eine physische Datei erzeugt, wann immer ich etwas ändere. Gulp und Grunt können das für mich machen, aber ich würde es gerne mit dem Webpack arbeiten lassen.

Also, ohne weiteres, einige Code. Ich betreiben npm run dev, die wie so (package.json, nur die Skripte Teil *) definiert ist:

"scripts": { 
    "build": "webpack", 
    "dev": "webpack-dev-server --devtool eval --progress --colors --hot --content-base build" 
    } 

Mit folgenden Webpack Konfiguration:

var webpack = require('webpack'); 
var path = require('path'); 

module.exports = { 
    entry: path.resolve(__dirname, 'src/js/main.js'), 
    output: { 
     path: path.resolve(__dirname, 'dist'), 
     filename: '/js/bundle.js', 
     publicPath: '/' 
    }, 
    devServer: { 
     inline: true, 
     contentBase: './dist' 
    }, 
    module: { 
     loaders: [ 
      { 
       test: /\.jsx?$/, 
       exclude: /(node_modules|bower_components)/, 
       loader: 'babel', 
       query: { 
        presets: ['es2015', 'react'] 
       } 
      } 
     ] 
    }, 
    plugins: [ 
     new webpack.ResolverPlugin([ 
       new webpack.ResolverPlugin.DirectoryDescriptionFilePlugin("bower.json", ["main"]) 
      ], ["normal"], "loader") 
    ] 
}; 

Hüllen: webpack: Bundles meiner Anwendung in dist/js /bundle.js vollkommen in Ordnung. webpack-dev-server: Scheint, ein Speicherpaket aus meinem JS perfekt zu streamen, aber erzeugt kein Bündel auf der Festplatte. npm run dev: Startet den Webpack-Server, führt aber weder zu einem Bundle, noch wird meine Anwendung ausgeführt, was zu einem Can not GET/ Fehler führt.

Kann mir jemand in die richtige Richtung zeigen? Ich habe versucht, Variationen der Config, aber ohne Erfolg .. Und nur vollständig zu sein, werde ich meine Verzeichnisstruktur zeigen:

./project 
    ./dist 
     ./js 
      ./bundle.js 
    ./src 
     ./js 
      ./main.js 
./package.json 
./webpack.config.js 

Noch einmal vielen Dank für die helfen!

+0

ich das bekommen verwenden. Was ich interessant finde, ist, dass es eine bundle.js-Datei generiert, wenn der Befehl 'webpack' ausgeführt wird. Aus den Quellen, die ich gelesen habe, einschließlich dieses Befehls im Knoten package.json -> scripts, sollte es möglich sein, diese Funktionalität bei der Ausführung von 'npm run dev' einzubeziehen. – Nickvda

+0

Also das Problem ist, dass "webpack-dev-server" funktioniert, aber 'npm run dev' nicht? Rufen Sie 'webpack-dev-server' in beiden Fällen mit denselben Argumenten auf? –

+0

* "Was ich interessant finde, ist, dass es beim Ausführen des Befehls webpack eine Datei bundle.js erzeugt." * Nun, das ist der Befehl 'webpack'. Sie sind verschiedene Befehle mit unterschiedlichen Zwecken. Ob Sie sie direkt oder über 'npm run *' aufrufen, macht keinen Unterschied. Nicht sicher, ich verstehe, was das Problem ist. –

Antwort

0

Es liegt an falsch geschriebenen Skripten in package.json Datei. Ersetzen Sie Ihre Skripte durch die folgenden. Dies liegt daran, dass Sie nicht den korrekten Pfad zu Ihrer Datei "bundle.js" angeben, die erstellt werden muss. "-p" bedeutet, die Eingangs- und Ausgangsschlüssel von webpack.config.js zu lesen. Dann diesen cmd läuft: $ npm run build

"scripts": { 
    "build": "webpack -p", 
    "dev": "webpack-dev-server --devtool eval --progress --colors --hot --content-base build" 
    } 
+0

Das ist sachlich falsch. "-p" bedeutet für [p] Produktion optimieren: https://github.com/webpack/webpack/blob/3d653290fafe385277b48e5a36807124618b9561/bin/convert-argv.js#L18-L21 – AKX

-1

Für mich war das Problem mit package.json unter, dass "Skripte"

Hier ist das Update:

In Ihrer package.json Datei unter Skript hinzufügen die folgenden:

"Skripte": {
"Start": "webpack-dev-Server",
"bauen": " webpack -p " }

Zuerst habe ich den Build dann starten.

Garn build

, wenn Sie zuerst dann Ihr Bündel bauen.js-Datei erstellt und danach können Sie diesen Befehl verwenden:

Garn beginnen

Statt Garn, können Sie auch npm