typescript gulp 任务错误
typescript gulp task error
我正在尝试在 gulpfile.js
中添加 typescript 任务
以前我使用命令npm run tsc
来编译在tsconfig.js中配置的打字稿:
{
"compilerOptions": {
"target": "ES5",
"module": "commonjs",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false
}
}
现在 我想从 gulp 任务编译打字稿。在 gulpfile.js:
var gulp = require( 'gulp' );
var plugins = require( 'gulp-load-plugins' )();
var tsfiles = 'src/app/**/*.ts';
gulp.task('compile', function(){
return gulp.src(tsfiles)
// .pipe(plugins.sourcemaps.init())
.pipe(plugins.typescript({
noImplicitAny: true,
out: 'output.js'
}))
// .pipe(plugins.sourcemaps.write('src/app/maps', {includeContent:false, sourceRoot:'/app'}))
.pipe(gulp.dest('src/app/'));
});
但是,我遇到了 4 个错误
[18:20:16] Starting 'typescriptIt'...
src\app\app.ts(1,1): error TS1148: Cannot compile modules unless the '--module' flag is provided.
src\app\app.ts(1,36): error TS2307: Cannot find module 'angular2/angular2'.
src\app\app.ts(2,1): error TS1205: Decorators are only available when targeting ECMAScript 5 and higher.
src\app\app.ts(6,7): error TS1219: Experimental support for decorators is a feature that is subject to change in a future release. Specify '--experimentalDecorators' to remove this warning.
[18:20:18] TypeScript: 4 semantic errors
[18:20:18] TypeScript: emit succeeded (with errors)
如果您有更好的 typescript 任务实现,请分享
我以前从未见过以这种方式加载的插件,但是如果您将 gulpfile.js 包放在 gulpfile.js 的顶部,那么 gulp 包肯定可以访问。
var typescript = require("gulp-typescript");
我正在使用 gulp-tsc 编译我的 TypeScript。
在我的 gulpfile 中:
var typescript = require('gulp-tsc');
// all typescript files
var typeScriptFiles = [
'folder/**/*.ts'];
// set the tasks to run
gulp.task('dev', ['compile-ts', 'tsc-watch']);
// watch all TypeScript files
gulp.task('tsc-watch', function() {
watch(typeScriptFiles, function(file) {
gulp.start('compile-ts');
});
});
// compile TypeScript files into folder/ts.gen.js
gulp.task('compile-ts', function(){
gulp.src(typeScriptFiles)
.pipe(typescript({out: 'ts.gen.js', emitError: false}))
.pipe(gulp.dest('folder/'));
});
运行 gulp dev
将监视指定的 TypeScript 文件并在更改时编译它们。
我已经弄明白了,解决方法很简单,我只是导入了 tsconfig.json,所有错误都消失了
var tsProject = plugins.typescript.createProject('src/tsconfig.json');
gulp.task('compilets', function(){
return gulp.src(tsfiles)
// .pipe(plugins.sourcemaps.init())
.pipe(plugins.typescript(tsProject))
// .pipe(plugins.sourcemaps.write('src/app/maps', {includeContent:false, sourceRoot:'/app'}))
.pipe(gulp.dest(paths.app))
.pipe(browserSync.stream());
});
您需要在 typescriptFiles
中包含 Typescript 定义文件。
var typeScriptFiles = [
'folder/**/*.ts',
'typings/tsd.d.ts //the tsd.d.ts references all the definitions installed
];
正在安装 Typescript 定义
npm install -g tsd
tsd init
tsd install angular --save
这将创建一个 typings
目录,其中包含您的 typescript definition folders and files
和一个引用所有这些文件的 tsd.d.ts
文件。从 typescript
转译为 javascript
.
时将需要此文件
希望对您有所帮助。祝你好运。
我正在尝试在 gulpfile.js
中添加 typescript 任务以前我使用命令npm run tsc
来编译在tsconfig.js中配置的打字稿:
{
"compilerOptions": {
"target": "ES5",
"module": "commonjs",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false
}
}
现在 我想从 gulp 任务编译打字稿。在 gulpfile.js:
var gulp = require( 'gulp' );
var plugins = require( 'gulp-load-plugins' )();
var tsfiles = 'src/app/**/*.ts';
gulp.task('compile', function(){
return gulp.src(tsfiles)
// .pipe(plugins.sourcemaps.init())
.pipe(plugins.typescript({
noImplicitAny: true,
out: 'output.js'
}))
// .pipe(plugins.sourcemaps.write('src/app/maps', {includeContent:false, sourceRoot:'/app'}))
.pipe(gulp.dest('src/app/'));
});
但是,我遇到了 4 个错误
[18:20:16] Starting 'typescriptIt'...
src\app\app.ts(1,1): error TS1148: Cannot compile modules unless the '--module' flag is provided.
src\app\app.ts(1,36): error TS2307: Cannot find module 'angular2/angular2'.
src\app\app.ts(2,1): error TS1205: Decorators are only available when targeting ECMAScript 5 and higher.
src\app\app.ts(6,7): error TS1219: Experimental support for decorators is a feature that is subject to change in a future release. Specify '--experimentalDecorators' to remove this warning.
[18:20:18] TypeScript: 4 semantic errors
[18:20:18] TypeScript: emit succeeded (with errors)
如果您有更好的 typescript 任务实现,请分享
我以前从未见过以这种方式加载的插件,但是如果您将 gulpfile.js 包放在 gulpfile.js 的顶部,那么 gulp 包肯定可以访问。
var typescript = require("gulp-typescript");
我正在使用 gulp-tsc 编译我的 TypeScript。
在我的 gulpfile 中:
var typescript = require('gulp-tsc');
// all typescript files
var typeScriptFiles = [
'folder/**/*.ts'];
// set the tasks to run
gulp.task('dev', ['compile-ts', 'tsc-watch']);
// watch all TypeScript files
gulp.task('tsc-watch', function() {
watch(typeScriptFiles, function(file) {
gulp.start('compile-ts');
});
});
// compile TypeScript files into folder/ts.gen.js
gulp.task('compile-ts', function(){
gulp.src(typeScriptFiles)
.pipe(typescript({out: 'ts.gen.js', emitError: false}))
.pipe(gulp.dest('folder/'));
});
运行 gulp dev
将监视指定的 TypeScript 文件并在更改时编译它们。
我已经弄明白了,解决方法很简单,我只是导入了 tsconfig.json,所有错误都消失了
var tsProject = plugins.typescript.createProject('src/tsconfig.json');
gulp.task('compilets', function(){
return gulp.src(tsfiles)
// .pipe(plugins.sourcemaps.init())
.pipe(plugins.typescript(tsProject))
// .pipe(plugins.sourcemaps.write('src/app/maps', {includeContent:false, sourceRoot:'/app'}))
.pipe(gulp.dest(paths.app))
.pipe(browserSync.stream());
});
您需要在 typescriptFiles
中包含 Typescript 定义文件。
var typeScriptFiles = [
'folder/**/*.ts',
'typings/tsd.d.ts //the tsd.d.ts references all the definitions installed
];
正在安装 Typescript 定义
npm install -g tsd
tsd init
tsd install angular --save
这将创建一个 typings
目录,其中包含您的 typescript definition folders and files
和一个引用所有这些文件的 tsd.d.ts
文件。从 typescript
转译为 javascript
.
希望对您有所帮助。祝你好运。