2016-09-03 7 views
13

मैं "गलत" त्रुटियों की एक बहुत कुछ मिल रहा है कर सकते हैं कहते हैं। यहाँ प्रासंगिक gulp task है:टाइपप्रति संकलक यह @angular मॉड्यूल नहीं मिल रहा है, लेकिन संकलित जब मेरे <code>gulp</code> कार्य मेरी टाइपप्रति संकलित ठीक

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)); 
}); 

और इन त्रुटियों को मैं कर रहे हैं:

[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 

मेरे वृक्ष संरचना इस तरह दिखता है (सरलीकृत):

. 
├── gulpfile.js 
├── ng 
├── node_modules 
├── package.json 
├── tsconfig.json 
├── typings.json 
└── web 

सभी मॉड्यूल टाइपप्रति संकलक वास्तव में node_modules में खोजने में विफल रहता है और मेरी अंतिम एप्लिकेशन सभी त्रुटियों के बावजूद ठीक काम करती है।

यह मेरा 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 
    } 
} 

मैं कैसे इन "झूठी सकारात्मक" त्रुटियों से छुटकारा पा सकते।

+1

मुझे लगता है कि टाइपप्रति संकलन करने के लिए पारित कर दिया फ़ाइलों के साथ एक समस्या है। एक तरफ, आप अपनी 'ऐपडेव' फाइलें पास करते हैं और 'नो रेसोल्व' सेट करते हैं। दूसरी तरफ आपके 'tsconfig' में एक अलग कॉन्फ़िगरेशन है। (सावधानी: फ़ाइलें और बाहर निकालने के लिए एक साथ काम नहीं है और भी अपने tsconfig घूंट द्वारा फिर से लिखा नहीं है!) आप typings के संकल्प के साथ समस्या है, तो आप टाइपप्रति संकलक मंगलाचरण के लिए 'traceResolution' झंडा जोड़ सकते हैं। आपको कुछ संकेत देना चाहिए। https://github.com/Microsoft/TypeScript-Handbook/blob/master/pages/Module%20Resolution.md#tracing-module-resolution देखते हैं। –

+0

तुम भी 'noResolve' विकल्प आपको गुजर रहे हैं पर एक नजर है चाहिए। यह उन फ़ाइलों को किसी भी आयात का पालन नहीं करता है जो टाइपस्क्रिप्ट कंपाइलर को पास नहीं किया गया है। https://github.com/Microsoft/TypeScript-Handbook/blob/master/pages/Module%20Resolution.md#using---noresolve। मैं 'gulp.src' नहीं करने का सुझाव दूंगा लेकिन या तो सत्य के स्रोत के रूप में 'tsproject' से शुरू होता हूं: https://github.com/ivogabe/gulp-typescript#using-tsconfigjson –

उत्तर

7

gulp.js में लाइन

var tsProject = typescript.createProject('tsconfig.json', {noExternalResolve: true, noResolve: true}); 

फ़ाइल

var tsProject = typescript.createProject('tsconfig.json'); 

होना चाहिए हम बाहरी typings लोड करना चाहते हैं के रूप में

और यह भी आप शीर्ष पर फ़ाइल main.ts में typings लोड करने के लिए की जरूरत है:

/// <reference path="../typings/index.d.ts" /> 

मैं अपनी परियोजना को क्लोन किया था और यह इस के बाद बिना चेतावनी के संकलित करता है।

+0

काफी हद तक मैंने उन दो चीजों को स्वतंत्र रूप से आजमाया पहले। धन्यवाद! – Juicy

+0

मैंने आपको बताया था कि इससे पहले कि क्योंकि typings की है, लेकिन अपने पूरे config पता था कि नहीं था :) – tibbus

+0

Typings संदर्भ में लेकिन सीधे tsconfig या अपने निर्माण श्रृंखला में शामिल नहीं किया जाना चाहिए। – DaSch

संबंधित मुद्दे