我有幾個打字稿文件,其中一些文件導出一個名爲APIS
的常量。使用gulp訪問打字稿文件變量值
我試圖訪問這些出口(我想將它們連接到一個文件),但它似乎並沒有工作。我顯然做錯了什麼,但我不確定是什麼。
例如,我有一個名爲services的文件夾,其中有兩個文件:service1.ts,service2.ts。
service1.ts:
...
export const APIS = [ { "field1" : "blabla" } ];
service2.ts:不包含APIS
變種。
這是我gulpfile.js:
var gulp = require('gulp');
var concat = require('gulp-concat');
var map = require('gulp-map');
gulp.task('default', function() {
return gulp.src('.../services/*.ts')
.pipe(map(function(file) {
return file.APIS;
}))
.pipe(concat('all.js'))
.pipe(gulp.dest('./test/'));
});
當我運行這個任務,我什麼也沒得到。當我將console.log(file.APIS);
添加到映射函數時,我得到undefined
所有值(儘管它在service1.ts中定義!)。
這也是繼到:Extracting typescript exports to json file using gulp
編輯: OK,所以我嘗試保存在一個.js文件,而不是一個.ts文的出口,現在我可以用require
訪問這些增值經銷商:
gulp.task(「默認」,函數(){
return gulp.src('./**/*.service.export.js')
.pipe(map(function(file) {
var fileObj = require(file.path);
...
}))
現在,如果我嘗試console.log(fileObj.APIS);
我得到正確的值。什麼我仍然感到困惑的是我如何通過這些v在所有這些變量中創建一個文件。是否有可能將它們推入數組?
謝謝。我正在嘗試解決此問題:如果我將導出保存在.js文件而不是.ts文件中,則可以使用require訪問它們。現在我的問題是如何將所有這些變量收集到單個json文件中。 – Ayelet
@Ayelet查看我的編輯 – Alex
謝謝,它完美的作品! :) – Ayelet