如何在构建时从生产中排除代码?

时间:2019-03-17 10:58:26

标签: javascript node.js webpack

在构建期间如何从Webpack捆绑包中排除打字稿代码?

例如,我在app.ts(nodejs应用程序)中有以下代码行:

const thisShouldNotBeInProductionBundleJustInDevBundle = 'aaaaaaa';

我希望在使用Webpack配置构建应用程序时排除此代码。

2 个答案:

答案 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";
 }

如果该值是不应该泄漏到您的生产版本中的敏感信息,我将在捆绑包中进行搜索以确保在构建管道发生更改时它不会泄漏。