2016-03-05 11 views
0

我在使用角度/ gulp將應用程序打印稿轉換爲js應用程序時出錯。使用gulp轉譯打字稿角度應用程序時出錯

src/app/app.component.ts(1,25): error TS2307: Cannot find module 'angular2/core'. 
src/app/main.ts(5,28): error TS2307: Cannot find module 'angular2/platform/browser'. 

但一切正常:編譯是好的,包含和systemjs都可以,所以應用程序啓動沒有問題。但我想避免出現這個錯誤!

下面是我用的是gulpfile:

const TS_CONFIG = { 
    "target": "es5", 
    "module": "system", 
    "moduleResolution": "node", 
    "sourceMap": true, 
    "emitDecoratorMetadata": true, 
    "experimentalDecorators": true, 
    "removeComments": false, 
    "noImplicitAny": false 
}; 
gulp.task('build.js.dev', ['clean.dev'], function() { 
    gulp.src(['./' + APP_DIR + '/**/*.ts']) 
     .pipe(ts(TS_CONFIG)) 
     .pipe(gulp.dest('./' + APP_DEST)); 
}); 

這個錯誤可能是分型有關,但我不明白如何設置,就在這裏......

感謝您的幫助。

注意:我使用jspm_packages,但沒有太多的變化比使用npm。

回答

0

刪除這些錯誤的最快最容易的方法是提供定義作爲打字稿編輯的來源。

適應你的任務是類似的東西:

gulp.task('build.js.dev', ['clean.dev'], function() { 
    gulp.src([ 
      'node_modules/angular2/core.d.ts', 
      'node_modules/angular2/typings/browser.d.ts', 
      './' + APP_DIR + '/**/*.ts' 
     ]) 
     .pipe(ts(TS_CONFIG)) 
     .pipe(gulp.dest('./' + APP_DEST)); 
}); 
+0

這甚至是最糟糕的! https://gist.github.com/Nek-/ecd2d8080e649e9c7b74我也試過類似'web/jspm_packages/**/*。d.ts'但結果相同。 – Nek

+0

我不知道這種方法是否與jspm依賴關係一起工作 - 我一直只使用npm - 你在打字稿編譯器中使用systemjs作爲模塊系統嗎? – FlorianTopf

+0

不,實際上,我優先使用gulp進行編譯,並且它的監視器有很多原因(這也是在angularjs文檔中的某處描述的)。 Jspm下載*精確*與npm相同的包(文件夾是jspm_packages/npm/angular2/...!)。所以它應該工作,但不是;不知道爲什麼。 – Nek

0

我會建議,而不是提供的所有文件手工實際使用您的tsconfig.json已擁有所有必需的數據:

gulp.task('build.js.dev', function() 
{ 
    var tsProject = ts.createProject('tsconfig.json'); 

    var tsResult = tsProject.src() 
     .pipe(sourcemaps.init()) 
     .pipe(ts(tsProject)); 

    return tsResult.js.pipe(gulp.dest('./' + APP_DEST)); 
}); 

樣品tsconfig .json:

{ 
    "compilerOptions": { 
     "target": "es5", 
     "module": "system", 
     "moduleResolution": "node", 
     "sourceMap": true, 
     "emitDecoratorMetadata": true, 
     "experimentalDecorators": true, 
     "removeComments": false, 
     "noImplicitAny": false 
    }, 
    "exclude": [ 
     "node_modules", 
     "dist", 
     "typings/browser.d.ts", 
     "typings/browser" 
    ] 
} 
+0

我試着用這個配置:https://gist.github.com/Nek-/8f89221cf88c1ed29078而結果是**完全相同。 – Nek

+0

你正在使用什麼版本的TSC? – Amid

+0

最後('^ 1.7.5') – Nek