Tôi nhận được rất nhiều lỗi "sai" khi nhiệm vụ gulp
của tôi biên dịch bản đánh số của tôi. Đây là liên quan gulp task
:Trình biên dịch TypeScript trong Gulp nói rằng nó không thể tìm thấy mô-đun @angular nhưng biên dịch tốt
var tsProject = typescript.createProject('tsconfig.json', {noResolve: true});
gulp.task('build-ts', function() {
gulp.src(appDev + '**/*.ts')
.pipe(sourcemaps.init())
.pipe(typescript(tsProject))
.pipe(sourcemaps.write())
//.pipe(jsuglify())
.pipe(gulp.dest(appProd));
gulp.src(appDev + '**/*.+(html|css)')
.pipe(gulp.dest(appProd));
});
Và đây là những lỗi tôi nhận được:
[09:38:52] Starting 'default'...
[09:38:52] Finished 'default' after 8.88 ms
ng/app.component.ts(1,27): error TS2307: Cannot find module '@angular/core'.
ng/app.component.ts(5,12): error TS2304: Cannot find name 'module'.
ng/app.module.ts(1,26): error TS2307: Cannot find module '@angular/core'.
ng/app.module.ts(2,31): error TS2307: Cannot find module '@angular/platform-browser'.
ng/app.module.ts(3,31): error TS2307: Cannot find module '@angular/common'.
[...]
[09:38:53] TypeScript: 27 semantic errors
[09:38:53] TypeScript: emit succeeded (with errors)
[BS] Proxying: http://0.0.0.0:5000
cấu trúc cây của tôi trông như thế này (giản thể):
.
├── gulpfile.js
├── ng
├── node_modules
├── package.json
├── tsconfig.json
├── typings.json
└── web
Tất cả các module mà các nguyên cảo trình biên dịch không tìm thấy được thực sự trong node_modules
và ứng dụng cuối cùng của tôi hoạt động tốt mặc dù tất cả các lỗi.
Đây là tôi tsconfig.js
:
{
"compilerOptions": {
"target": "ES5",
"module": "commonjs",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false,
"outDir": "./app"
},
"filesGlob": [
"./app/**/*.ts",
"!./node_modules/**/*.ts"
],
"exclude": [
"node_modules",
"typings/main",
"typings/main.d.ts"
],
"atom": {
"rewriteTsconfig": true
}
}
Làm thế nào tôi có thể thoát khỏi những sai sót này "dương tính giả".
Tôi nghĩ rằng có sự cố với các tệp được chuyển đến bản biên soạn. Một mặt, bạn chuyển các tập tin 'appDev' và đặt' noResolve'. Mặt khác, bạn có một cấu hình khác trong 'tsconfig'. (Chú ý: các tập tin và loại trừ không hoạt động cùng nhau và cũng tsconfig của bạn không được viết lại bởi gulp!) Nếu bạn gặp vấn đề với độ phân giải của typings, bạn có thể thêm cờ 'traceResolution' vào lời gọi trình biên dịch kiểu. Điều đó sẽ cho bạn một số gợi ý. xem https://github.com/Microsoft/TypeScript-Handbook/blob/master/pages/Module%20Resolution.md#tracing-module-resolution. –
Bạn cũng nên xem xét tùy chọn 'noResolve' mà bạn đang chuyển. Điều này không làm theo bất kỳ nhập khẩu nào đối với các tệp không được chuyển tới trình biên dịch TypeScript. https://github.com/Microsoft/TypeScript-Handbook/blob/master/pages/Module%20Resolution.md#using---noresolve. Tôi muốn đề nghị không phải 'gulp.src' nhưng bắt đầu từ' tsproject' như nguồn gốc của sự thật: https://github.com/ivogabe/gulp-typescript#using-tsconfigjson –