2016-02-04 79 views
0

我正在使用Angularjs的Web應用程序和gulp。如何訪問angularjs中的預處理

使用一飲而盡,我創建了一個環境變量,像下面

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}})) 
}); 

這是我一飲而盡輸出

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

但我不能訪問我的角碼這裏面的環境變量。我不知道需要包含任何插件嗎?

這是訪問的環境變量

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

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

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

我如何可以訪問由一飲而盡創建的環境變量我的js代碼。

請幫幫我。

+0

development!== dev 嘗試將您的@ifdef env ='dev'更改爲您的吞食文件輸出的env,如果這符合您的預期。 – ryanlutgen

+0

你的答案是正常的JavaScript,但這是預處理 – selvam

回答

0

我假設你正在開發一個提供index.html的SPA。

如果是這樣,然後使用服務器端HTML模板庫來預處理您的HTML。我們親自使用玉器。

你基本上將index.html轉換爲Jade - 給你index.jade。創建一個吞嚥任務來將你的Jade寫入HTML。在gulp任務中,您可以設置Jade將用來編寫index.html的變量。

在你index.jade做這樣的事情......

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

你一飲而盡的任務會做HTML轉換

,那麼你可以檢查類裏面你的JavaScript或存在,或不是你CSS做類似...

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

請注意,變量的值將在構建時寫入HTML文件。

希望有所幫助。