2017-09-18 3 views
0

J'utilise la pile de MERN et les fenêtres en cours d'exécution 10. Je suis en train d'exécuter cette commande npm run à partir du fichier package.json.Comment exécuter webpack dans la production dans un script package.json dans les fenêtres avec d'autres commandes?

"scripts": { 
    "build": "set NODE_ENV=production webpack && gulp", 
    "postinstall": "npm run build", 
    "start": "node ./bin/www" 
    }, 

Quand je lance npm run build-je obtenir les résultats suivants: terminal results

Ce qui se passe est-il ressemble et fonctionne de Gulp qui est-ce. Mon lot n'est pas optimisé pour la production du tout. Je vais inclure le fichier webpack en cas de besoin.

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

module.exports = { 
    entry: { 
    app: './src/app.js' 
    }, 
    output: { 
    filename: 'public/build/bundle.js', 
    sourceMapFilename: 'public/build/bundle.map' 
    }, 
    devtool: '#source-map', 
    plugins: 
    process.env.NODE_ENV === 'production' 
     ? [ 
      new webpack.DefinePlugin({ 
      'process.env': { 
       NODE_ENV: JSON.stringify('production') 
      } 
      }), 
      new webpack.optimize.UglifyJsPlugin({ 
      minimize: true, 
      compress: { 
       warning: true 
      } 
      }) 
     ] 
     : [], 
    module: { 
    loaders: [ 
     { 
     test: /\.jsx?$/, 
     exclude: /(node_modules)/, 
     loader: 'babel-loader', 
     query: { 
      presets: ['react', 'es2015', 'stage-1'] 
     } 
     } 
    ] 
    } 
}; 

Répondre

0

Vous pouvez utiliser cross-env, d'une manière indépendante de la plateforme d'utiliser des variables d'environnement:

"scripts": { 
    "build": "cross-env NODE_ENV=production webpack && gulp", 
    // or if the former does not work 
    "build": "npm run build:webpack && gulp", 
    "build:webpack": "cross-env NODE_ENV=production webpack", 
}, 

Notez qu'il existe other ways to do production builds ou evaluate environment variables dans la configuration webpack.

+0

Vous êtes un génie! Donc, je regardais l'autre option affichée et il semblait que vous deviez avoir 3 différents fichiers webpack. Est-ce que c'est ainsi plus optimisé? –

+0

Fractionnement la configuration dans des fichiers séparés est populaire parmi certains développeurs/projets. Je n'en suis pas fan car cela rend la navigation dans la partie pertinente de la configuration plus difficile. Sinon, vous pouvez [évaluer les variables d'environnement] (https://webpack.js.org/guides/environment-variables/) dans la configuration webpack. – simon04