2017-04-07 4 views
0

Ich habe eine js-Datei, die wie folgt aussieht exportieren ohne Modul:Webpack: Wie JS-Datei

self.MonacoEnvironment = { 
    baseUrl: CDN_HOST + '/javascripts' 
}; 
importScripts('/javascripts/vs/base/worker/workerMain.js'); 

In meinem webpack.config, ich habe CDN_HOST definiert:

new webpack.DefinePlugin({ 
    'CDN_HOST': JSON.stringify(process.env.CDN_HOST || '') 
}), 
enter code here 

würde Ich mag um diese Datei zu exportieren, aber CDN_HOST werden mit dem Wert hier ersetzt, aber ich möchte nicht, dass diese Datei in ein Modul (z. B. "webpackjsonP") gewickelt wird

Wenn ich file-loader verwenden, dann wird es l Kopieren Sie die Datei mit Moduldefinitionen, aber ersetzen Sie nicht CDN_HOST. Wenn ich babel-loader verwende, wird es CDN_HOST ersetzen, aber die Moduldefinitionen hinzufügen.

Wie kann ich einfach DefinePlugin verwenden, aber keine Module verwenden?

Antwort

0

Ich schaffte es, ohne DefinePlugin zu verwenden. Stattdessen habe ich file-loader angekettet mit string-replace-loader. string-replace-loader ist für meine Zwecke fast gleich DefinePlugin.

loaders: [ 
    "file-loader?name=./filetoexport.js", 
    { 
     loader: "string-replace-loader", 
     query: { 

     search: 'CDN_HOST', 
     replace: JSON.stringify(process.env.CDN_HOST || '') 
     } 
    }, 
    ]