2017-07-08 8 views
0

Ich habe ein Projekt mit webpack mit einer webpack.config.js Datei wie folgtWie verwende ich die benutzerdefinierte Konfiguration webpack.config.js?

const webpack = require('webpack'); 

const config = { 
    serverBaseUrl: 'http://localhost:3000', 
    devtool: "inline-source-map", 
    entry: __dirname + "/app/App.js", 
    output: { 
    path: "./public/js/", 
    publicPath: "/js/", 
    filename: "bundle.js" 
    }, 
    module: { 
    loaders: [{ 
     test: /.jsx?$/, 
     exclude: /node_modules/, 
     loader: "babel", 
     query: { 
     presets: ["es2015","react","stage-0"] 
     } 
    }] 
    }, 
    devServer: { 
    port: 8008, 
    contentBase: "./public", 
    colors: true, 
    historyApiFallback: true, 
    inline: true 
    }, 
} 

if (process.env.NODE_ENV === 'production') { 
    config.serverBaseUrl = 'http://api.domain.com'; 
    config.devtool = false; 
    config.plugins = [ 
    new webpack.optimize.OccurenceOrderPlugin(), 
    new webpack.optimize.UglifyJsPlugin({comments: false}), 
    new webpack.DefinePlugin({ 
     'process.env': {NODE_ENV: JSON.stringify('production')} 
    }) 
    ]; 
}; 

module.exports = config; 

reagieren Ich möchte Datei config.serverBaseUrl in anderen js benutzen? Was soll ich machen?

Kann ich

const config = require('./webpack.config.js')

und verwenden Sie die Config wie dieses

config.serverBaseUrl

UPDATE:

wenn ich const= require('config') in einer anderen Datei verwende ich diese bekam er ror

ERROR in ./app/components/ComponentBase.js 
Module not found: Error: Cannot resolve module 'config' in /Users/username/data/projects/bwe_web/app/components 
@ ./app/components/ComponentBase.js 33:13-30 
+0

Sieht so aus, als ob Sie bereits die Konfiguration exportieren, warum brauchen Sie nicht nur die Konfiguration? –

+0

Da Sie 'config' bereits exportiert haben, glaube ich, dass Sie es in jeder anderen Datei mit' config.serverBaseUrl' erhalten können, wenn Sie es benötigt haben. –

+0

@DylanWright Bitte beachten Sie mein Update. Ich habe einen Fehler von 'Modul nicht gefunden: Fehler: Kann Modul 'Config' nicht lösen – icn

Antwort

0

ICN, Um zusammen mit J. Titus Erklärung zu gehen, wahrscheinlich sollte man einfach eine andere JavaScript-Klasse namens sagen Environment.js erstellen und exportieren und die Einstellungen von dort verwenden. Am Anfang Ihrer JS-Klasse können Sie Environment.js anfordern und dann einfach die Werte einlesen. Halten Sie Ihre Webpack-Konfiguration für Ihre web.pack-Konfiguration.

'use strict' 
var EnvironmentSettings = function(){ 
    var serverBaseUrl = 'http://api.domain.com'; 
}; 

module.exports.EnvironmentSettings = EnvironmentSettings; 

dann für jede Implementierung, die Sie benötigen, oder sagen wollen implementieren/initialisieren, dann würden Sie benötigen es nur an der Spitze der JavaScript-Klasse.

const envSettings = require('EnvironmentSettings'); 
var api = envSettings.serverBaseUrl 

Sie sollten sich auch mit einer Art von JS-Mustern vertraut machen. Prototype Pattern, Revealing Prototype Pattern und dies wird mit Ihrer Ausbildung von externen Klassen helfen.

Verwandte Themen