【发布时间】:2016-08-20 12:30:47
【问题描述】:
我有几个打字稿文件,其中一些导出了一个名为 APIS 的常量。
我正在尝试访问这些导出(我想将它们全部连接到一个文件中),但它似乎不起作用。我显然做错了什么,但我不确定是什么。
例如,我有一个名为 services 的文件夹,其中包含 2 个文件: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); 添加到 map 函数时,我得到了所有值的 undefined(尽管它是在 service1.ts 中定义的!)。
以下是:Extracting typescript exports to json file using gulp
编辑:好的,所以我尝试将导出保存在 .js 文件而不是 .ts 文件中,现在我可以使用 require 访问这些变量:
gulp.task('default', function() {
return gulp.src('./**/*.service.export.js')
.pipe(map(function(file) {
var fileObj = require(file.path);
...
}))
现在,如果我尝试console.log(fileObj.APIS);,我会得到正确的值。我仍然困惑的是如何传递这些值,并从所有这些变量中创建一个文件。是否可以将它们推入数组?
【问题讨论】:
标签: javascript typescript gulp gulp-concat gulp-plugin