0

我正在使用 gulp 开发 Web 应用程序 Angularjs。

使用 gulp 我创建了一个环境变量,如下所示

var env = process.env.NODE_ENV  || 'test';

gulp.task('preprocess', function() {
    log('Preprocess..');
    log(env)
    // Minify and copy all JavaScript (except vendor scripts)
    return gulp.src(source.scripts)
        .pipe(preprocess({context:{target:env}}))
});

这是我的 gulp 输出

[11:23:02] Starting 'preprocess'...
[11:23:02] Preprocess..
[11:23:02] test
[11:23:02] Finished 'preprocess' after 370 ms

但是我无法在我的角度代码中访问这个环境变量。我不知道需要包含任何插件是不是?

这是我用于访问环境变量的 js 代码

//@ifdef  env='test'
    alert('Environment variable test');
//@endif

//@ifdef  env='local'
alert('Environment variable local');
//@endif    

//@ifdef  env='dev'
alert('Environment variable dev');
//@endif

如何访问 gulp 创建的环境变量。

请帮我。

4

1 回答 1

0

我假设您正在开发一个提供 index.html 的 SPA。

如果是这样,请使用服务器端 HTML 模板库来预处理您的 HTML。我们个人用的是玉。

您基本上将 index.html 转换为 Jade - 给您 index.jade。创建一个 gulp 任务以将您的 Jade 写入 HTML。在 gulp 任务中,您可以设置 Jade 用于编写 index.html 的变量。

在您的 index.jade 中执行类似...

<html class="VARIABLE_FROM_GULP_TASK"> <!-- this would be written in Jade -->

您的 gulp 任务将执行 HTML 转换

然后您可以检查该类是否存在于您的 JavaScript 或您的 CSS 中,例如...

.var_exist .body { color:red }
.var_not_exist .body { color:blue }

请注意,变量的值将在构建时写入 HTML 文件。

希望有帮助。

于 2016-02-04T12:25:58.697 回答