0
私はlaravel 5.2でAngular2を使用しようとしていますので、gulpをtypescriptファイルをコンパイルするように設定しようとしています。gulp elixir-typescriptがコンパイルに失敗しました
これは私のpackage.jsonファイルです:
{
"private": true,
"scripts": {
"prod": "gulp --production",
"dev": "gulp watch"
},
"devDependencies": {
"gulp": "^3.9.1",
"laravel-elixir": "^5.0.0",
"bootstrap-sass": "^3.0.0",
"@angular/common": "2.0.0-rc.5",
"@angular/compiler": "2.0.0-rc.5",
"@angular/core": "2.0.0-rc.5",
"@angular/forms": "0.3.0",
"@angular/http": "2.0.0-rc.5",
"@angular/platform-browser": "2.0.0-rc.5",
"@angular/platform-browser-dynamic": "2.0.0-rc.5",
"@angular/router": "3.0.0-rc.1",
"@angular/router-deprecated": "2.0.0-rc.2",
"@angular/upgrade": "2.0.0-rc.5",
"systemjs": "0.19.27",
"core-js": "^2.4.0",
"reflect-metadata": "^0.1.3",
"rxjs": "5.0.0-beta.6",
"zone.js": "^0.6.12"
},
"dependencies": {
"elixir-typescript": "^2.0.0"
}
}
これは私のtsconfig.json(私はリソース/資産/ typescriptですに入れていること)である:
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false
},
"exclude": [
"node_modules"
]
}
と私は終わりに私gulpfile.js:
var elixir = require('laravel-elixir');
var elixirTypscript = require('elixir-typescript');
elixir(function(mix) {
mix.sass('app.scss');
mix.typescript('main.ts', 'public/js/');
mix.copy('node_modules/@angular', 'public/js/angular');
mix.copy('node_modules/when/es6-shim', 'public/js/es6-shim');
mix.copy('node_modules/es6-promise', 'public/js/es6-promise');
mix.copy('node_modules/rxjs', 'public/js/rxjs');
mix.copy('node_modules/systemjs', 'public/js/systemjs');
mix.copy('node_modules/zone.js', 'public/js/zone.js');
});
私は、コンソールからの一口を起動すると、私のような、エラーの多くを得る:
/var/www/chat/laravel/node_modules/@angular/common/src/directives/ng_class.d.ts(81,34): error TS2304: Cannot find name 'Set'.
[14:59:24] gulp-notify: [Laravel Elixir] TypeScript Compilation Failed!: /var/www/chat/laravel/node_modules/@angular/common/src/directives/ng_class.d.ts(81,34): error TS2304: Cannot find name 'Set'.
{ [TypeScript error: /var/www/chat/laravel/node_modules/@angular/common/src/directives/ng_class.d.ts(81,34): error TS2304: Cannot find name 'Set'.]
name: 'TypeScript error',
.....
node_modulesのtypescriptのすべてをコンパイルしようとしているようです。私はtsconfig.jsonでフィールド "exclude"を使用しましたが、動作していないようです。