如何声明配置文件变量并将其集成到JS文件中?如何 exclude/include 构建函数?

How to declare profile variables and integrate them into JS files? How to exclude/include a function for a build?

后端开发人员问前端。

我有两个完全不同的函数。其中一个用于制作,另一个用于本地开发。比如我在一个开发模式下,情况是这样的:

/*
function f() {
    // production logic
}
*/
function f() { 
    // development logic
}

如您所见,我总是评论其中一个功能。在为生产构建构建之前,我应该删除对生产功能的注释,并将它们添加到开发功能中。

我真的不想做 if 声明,我将在其中检查一些变量(如果值等于 "DEV" 那么......否则......)。函数太大,包含很多不连续的部分。

我在谷歌上搜索了很多,但什么也没找到。是不是有点像像带有可以集成到 JS 文件中的变量的配置文件之类的东西?或者用注释标记函数,其中 excludes/includes 函数 from/in 构建为 possible with HTML.

Grunt 正在收集该项目。

如评论中@dlsso所述,有一个有效的 npm plugin grunt-dev-prod-switch 根据您所在的模式修改源文件。

Use to switch between previously defined block comment blocks in project files to change the environment from development to production and back.

配置后,它允许我执行以下操作:

/* env:prod */
function f() { ... }
/* env:prod:end */

/* env:dev */
function f() { ... }
/* env:dev:end */

插件判断哪个mode/environment开启(dev_prod_switch.options.environment),分析文件的注释(定义在dev_prod_switch.all.files 属性)和spoils(评论)所有方块都与当前模式无关。

例如开启生产模式:

/* env:dev *#/
function f() { ... }
/* env:dev:end */