我有使用 webpack 構建的 JS 庫 foo,其中包含并構建 Phaser 3 庫的源代碼。Phaser 3 使用定義插件來排除自身的某些部分,例如將“typeof CANVAS_RENDERER”替換為 false。
我遇到的問題是這個。當我在我的 webpack 配置中包含這個塊時
new webpack.DefinePlugin({
"typeof CANVAS_RENDERER": JSON.stringify(false),
}),
我得到的輸出是這樣的
if (typeof WEBGL_RENDERER && typeof CANVAS_RENDERER)
{}
if (typeof WEBGL_RENDERER && !typeof CANVAS_RENDERER)
{
WebGLRenderer = __webpack_require__(/*! ../renderer/webgl/WebGLRenderer */ "../node_modules/phaser/src/renderer/webgl/WebGLRenderer.js");
// Force the type to WebGL, regardless what was requested
config.renderType = CONST.WEBGL;
game.renderer = new WebGLRenderer(game);
}
Wheretypeof CANVAS_RENDERER顯然已被評估為 false,因此函式體已被優化,但它沒有替換原始陳述句,導致代碼在運行時走下空路徑。
uj5u.com熱心網友回復:
看來,如果插件無法解決if子句的每個部分,在您的情況下typeof WEBGL_RENDERER(因為這未在 中定義new webpack.DefinePlugin),它不會解決其余部分。
換句話說,如果您在插件中定義兩者,它應該可以作業:
new webpack.DefinePlugin({
"typeof CANVAS_RENDERER": JSON.stringify(false),
"typeof WEBGL_RENDERER": JSON.stringify(true),
}),
至少解決了我的測驗設定中的問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/433712.html
標籤:javascript 网页包 移相器框架
下一篇:URL路徑被重復ASP.NET
