我一直试图使用gulp-typescript取得一定程度的成功,但我有一个小问题。我的所有代码都存储在'src'下,我希望将它们编译为'.tmp',但不包含'src'。
这是我的代码,我认为问题是不支持将值(glob)传递给tsProject.src,所以我得到/.tmp/src/aTypescriptFile.js例如
我直接从github repo获取此代码,我真正不理解的是为什么用tsProject.src替换gulp.src
有什么想法吗?我确实需要合并我的tsconfig.json文件。
let tsProject = plugins.typescript.createProject('./tsconfig.json');
return tsProject.src('/src/**/*.ts')
.pipe(plugins.typescript(tsProject))
.pipe(plugins.sourcemaps.init())
.pipe(plugins.sourcemaps.write('.'))
.pipe(gulp.dest('.tmp'));
**编辑**
更多信息,我已经设法通过替换
来使用glob来限制它 return tsProject.src('/src/**/*.ts')
带
return gulp.src('/src/**/*.ts')
现在问题是我收到关于缺少打字的错误。
src/testme.ts(4,10): error TS2304: Cannot find name 'require'.
我的TSCONFIG.JSON文件在这里,其中有输入。
{
"compilerOptions": {
"target": "ES6",
"module": "commonjs",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false
},
"files": [
"typings/main.d.ts",
"src/testme.ts"
]
}
答案 0 :(得分:1)
所有路径都应该传递给gulp.src - 来源和打字。
让我们有一些路径:
var paths = {
lib: "./wwwroot/",
ts: ["./sources/**/*.ts"],
styles: ["./sources/**/*.scss"],
templates: ["./sources/**/*.html"],
typings: "./typings/**/*.d.ts",
//svg: "./sources/**/*.svg",
};
我们可以将一系列源路径传递给gulp-typescript:
gulp.task("?typescript:demo:debug", function () {
var tsResult = gulp.src([
paths.typings,
// <...some other paths...>
].concat(paths.ts))
.pipe(sourcemaps.init())
.pipe(ts({
target: "ES5",
experimentalDecorators: true,
noImplicitAny: false
}));
return tsResult.js
.pipe(concat(package.name + ".js"))
.pipe(sourcemaps.write({ sourceRoot: "" }))
.pipe(gulp.dest(paths.lib));
})
我正在通过
gulp.src([paths.typings, <...some other paths...>].concat(paths.ts))
但当然,它也可以用更简单的方式完成:
gulp.src([paths.typings, paths.ts])