在构建期间如何从Webpack捆绑包中排除打字稿代码?
例如,我在app.ts
(nodejs应用程序)中有以下代码行:
const thisShouldNotBeInProductionBundleJustInDevBundle = 'aaaaaaa';
我希望在使用Webpack配置构建应用程序时排除此代码。
答案 0 :(得分:3)
在Webpack版本4中,您可以在Webpack配置中设置mode: 'production'
。 (https://webpack.js.org/concepts/mode/)
因此,在您的源代码中,您可以使用以下代码:
if (process.env.NODE_ENV === 'development') {
const thisShouldNotBeInProductionBundleJustInDevBundle = 'aaaaaaa';
...
}
最后,在构建捆绑包期间,if和ifs内部的所有代码都会自动删除
答案 1 :(得分:1)
Webpack的设置为mode
,可让您在开发和production builds之间切换。
在您的代码中,您可以使用process.env.NODE_ENV
来确定您是否在生产中,Webpack使用该属性来消除“生产无效代码”:
// declare variable everywhere to prevent unresolvable variable references
let onlyInDev = "";
// The following should be shaken away by webpack
if(process.env.NODE_ENV === "development") {
onlyInDev = "test";
}
如果该值是不应该泄漏到您的生产版本中的敏感信息,我将在捆绑包中进行搜索以确保在构建管道发生更改时它不会泄漏。