Webpack unterstützt die Substitution von konstanten Ausdrücken bei der Erstellung über webpack.DefinePluginwebpack.DefinePlugin - nicht in der Lage zu bekommen jede Substitution
zur Vorverarbeitung des Code, um Umgebungen zu zielen auf unterschiedliche BuildDies ist äußerst nützlich zu arbeiten.
Jedoch, trotz unzähliger Experimente und Forschung, kann ich keine Substitution wirksam werden.
Ich weiß, dass der Plugin-Abschnitt von Webpack erkannt wird, da die Ausgabe hässlich ist.
Mein tatsächlicher Anwendungsfall ist viel komplexer, aber das Problem, das ich erfahre, wird anhand des folgenden minimalen Codes und der minimalen Konfiguration demonstriert.
webpack 2.2.1
test.js
document.write ("xx")
Ich wünsche „xx“, "etwas anderes"
webpack.config.js zu verwandeln
var webpack = require('webpack');
module.exports = {
plugins: [
new webpack.DefinePlugin(
{
"xx" : JSON.stringify("SOMETHING DIFFERENT")
}
)
, new webpack.optimize.UglifyJsPlugin()
]
}
Befehlszeile
Webpack test.js out.js
Ausgangs Fragment ...
… t(t.s=1)}([function(n,t){document.write("xx")},function(n,t,r){r(0),n.exports=r(0)}]);
Die xx ist nicht mit etwas anderem
ersetzt