tsc कोणीय में त्रुटि संकलन जब निर्भरता node_modules फ़ोल्डर से बाहर हैं

वोट
0

मैं कोणीय 2. करने के लिए अपने कोणीय 1 कोड विस्थापित करने के लिए कोशिश कर रहा हूँ और संकर रास्ते अंदर फ़ोल्डर node_modules मेरी कोणीय 2 config फ़ाइलें अब मैं अपने ऐप bootstrap। मैं सार्वजनिक / संपत्ति / plugins के अंदर उन फ़ाइल ले जाना चाहते हैं folder.when मैं प्रतिबिंबित-मेटाडाटा को स्थानांतरित करने और node_modules फ़ोल्डर के बाहर फ़ाइलों zone.js और टीएससी आदेश यह त्रुटियों निम्नलिखित देता है का उपयोग कर कोड संकलन।

public/assets/plugins/reflect-metadata/test/reflect-definemetadata.ts(5,24):error TS2307: Cannot find module 'chai'.
public/assets/plugins/reflect-metadata/test/reflect-definemetadata.ts(7,1): error TS2304: Cannot find name 'describe'.
public/assets/plugins/reflect-metadata/test/reflect-definemetadata.ts(8,5): error TS2304: Cannot find name 'it'.
public/assets/plugins/reflect-metadata/test/reflect-definemetadata.ts(12,5): error TS2304: Cannot find name 'it'.
public/assets/plugins/reflect-metadata/test/reflect-definemetadata.ts(16,5): error TS2304: Cannot find name 'it'.
public/assets/plugins/reflect-metadata/test/reflect-deletemetadata.ts(5,24): error TS2307: Cannot find module 'chai'.
public/assets/plugins/reflect-metadata/test/reflect-deletemetadata.ts(7,1): error TS2304: Cannot find name 'describe'.
public/assets/plugins/reflect-metadata/test/reflect-deletemetadata.ts(8,5): error TS2304: Cannot find name 'it'.
public/assets/plugins/reflect-metadata/test/reflect-deletemetadata.ts(12,5): error TS2304: Cannot find name 'it'.
public/assets/plugins/reflect-metadata/test/reflect-deletemetadata.ts(18,5): error TS2304: Cannot find name 'it'.
public/assets/plugins/reflect-metadata/test/reflect-deletemetadata.ts(25,5): error TS2304: Cannot find name 'it'.
public/assets/plugins/reflect-metadata/test/reflect-deletemetadata.ts(33,5): error TS2304: Cannot find name 'it'.
public/assets/plugins/reflect-metadata/test/reflect-getmetadata.ts(5,24): error TS2307: Cannot find module 'chai'.
public/assets/plugins/reflect-metadata/test/reflect-getmetadata.ts(7,1): error TS2304: Cannot find name 'describe'.
public/assets/plugins/reflect-metadata/test/reflect-getmetadata.ts(8,5): error TS2304: Cannot find name 'it'.
public/assets/plugins/reflect-metadata/test/reflect-getmetadata.ts(12,5): error TS2304: Cannot find name 'it'.
public/assets/plugins/reflect-metadata/test/reflect-getmetadata.ts(18,5): error TS2304: Cannot find name 'it'.
public/assets/plugins/reflect-metadata/test/reflect-getmetadata.ts(25,5): error TS2304: Cannot find name 'it'.
public/assets/plugins/reflect-metadata/test/reflect-getmetadata.ts(33,5): error TS2304: Cannot find name 'it'.
public/assets/plugins/reflect-metadata/test/reflect-getmetadata.ts(39,5): error TS2304: Cannot find name 'it'.
public/assets/plugins/reflect-metadata/test/reflect-getmetadata.ts(46,5): error TS2304: Cannot find name 'it'.
public/assets/plugins/zone.js/dist/zone.js.d.ts(129,11): error TS2451: Cannot redeclare block-scoped variable 'Zone'.
public/assets/plugins/zone.js/dist/zone.js.d.ts(374,14): error TS2300: Duplicate identifier 'HasTaskState'.
public/assets/plugins/zone.js/dist/zone.js.d.ts(383,14): error TS2300: Duplicate identifier 'TaskType'.
public/assets/plugins/zone.js/dist/zone.js.d.ts(482,15): error TS2451: Cannot redeclare block-scoped variable 'Zone'.
public/assets/plugins/zone.js/lib/jasmine/jasmine.ts(22,14): error TS2304: Cannot find name 'jasmine'.
public/assets/plugins/zone.js/lib/jasmine/jasmine.ts(23,7): error TS2304: Cannot find name 'jasmine'.
public/assets/plugins/zone.js/lib/jasmine/jasmine.ts(25,3): error TS2304: Cannot find name 'jasmine'.
public/assets/plugins/zone.js/lib/jasmine/jasmine.ts(50,22): error TS2304: Cannot find name 'jasmine'.
public/assets/plugins/zone.js/lib/jasmine/jasmine.ts(112,24): error TS2304: Cannot find name 'jasmine'.
public/assets/plugins/zone.js/lib/jasmine/jasmine.ts(113,4): error TS2304: Cannot find name 'jasmine'.
public/assets/plugins/zone.js/lib/zone.ts(130,11): error TS2451: Cannot redeclare block-scoped variable 'Zone'.
public/assets/plugins/zone.js/lib/zone.ts(409,6): error TS2300: Duplicate identifier 'HasTaskState'.
public/assets/plugins/zone.js/lib/zone.ts(416,6): error TS2300: Duplicate identifier 'TaskType'.
public/assets/plugins/zone.js/lib/zone.ts(542,7): error TS2451: Cannot redeclare block-scoped variable 'Zone' 

हालांकि मैं ऊपर मेरे अन्य .ts त्रुटि मिली फ़ाइलों को सही ढंग संकलन कर रहे हैं और मेरे ऐप भी अच्छी तरह से चल रहा है। यह .ts संकलन करने की कोशिश करता संकलक है निर्भरता फ़ाइलों के लिए प्रासंगिक फ़ाइलें? यदि ऐसा है तो यह है कि या कुछ अन्य त्रुटि से बचने के लिए कैसे? क्या कोई मेरी मदत कर सकता है..

tsconfig.json फ़ाइल

 {
compilerOptions: {
    module: commonjs,
    target: es5,
    noImplicitAny: false,
    sourceMap: true,
    experimentalDecorators: true
} }

systemjs.config.js फ़ाइल

   (function (global) {
    System.config({
       transpiler:'typescript',

        typescriptOptions: {
           emitDecoratorMetadata: true },

paths: {
  // paths serve as alias
  'npm:': '/'
},
// map tells the System loader where to look for things
map: {
  // our app is within the app folder
  app: 'app_2',

  // angular bundles
  '@angular/core': 'npm:@angular/core/bundles/core.umd.js',
  '@angular/common': 'npm:@angular/common/bundles/common.umd.js',
  '@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js',
  '@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js',
  '@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
   '@angular/upgrade/static': 'npm:@angular/upgrade/bundles/upgrade-static.umd.js',

  // other libraries
  'rxjs':                      'rxjs',
  'angular-in-memory-web-api': 'npm:angular-in-memory-web-api/bundles/in-memory-web-api.umd.js'
},
// packages tells the System loader how to load when no filename and/or no extension
packages: {
  app: {

    defaultExtension: 'js'
  },
  rxjs: {
    defaultExtension: 'js'
  },
},
      'angular2-in-memory-web-api': {
       defaultExtension: 'js'
    },
 });
})(this);`

index.html

  <script src=assets/plugins/zone.js/dist/zone.js></script>
  <script src=assets/plugins/reflect-metadata/Reflect.js></script>
  <script src=assets/plugins/systemjs/dist/system.src.js></script>
  <script src=assets/plugins/systemjs/systemjs.config.js></script>
  <script>
     System.import('app_2/main').then(null, console.error.bind(console));
  </script>'

फ़ाइल संरचना:

app -- node_modules
    -- public
        -- app_2
        -- assets
           -- plugins
              --reflect-metadata 
              --zone.js 
09/03/2017 को 04:05
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


2 जवाब

वोट
0

यहाँ मैं समाधान मिल गया। मेरी tsconfig फ़ाइल में, मैं नीचे के रूप में इसी फ़ोल्डर शामिल नहीं है।

{
"compilerOptions": {
    "module": "commonjs",
    "target": "es5",
    "noImplicitAny": false,
    "sourceMap": true,
    "moduleResolution": "node",
    "experimentalDecorators": true

},
 "exclude": [
"public/assets/plugins/angular_2"
]

}

ऐसा लगता है कि टाइपप्रति संकलक zone.js में फ़ाइलों .ts संकलन और प्रतिबिंबित-मेटाडाटा की कोशिश करता है। तो उस फ़ोल्डर को बाहर निकालकर समस्या का समाधान कर सकते हैं। :) लेकिन जब मैं प्लग इन फ़ोल्डर में @angular फ़ोल्डर ले जाने के लिए, यह त्रुटि देता है "मॉड्यूल नहीं मिल सकता है"। मुझे लगता है कि फ़ोल्डर बाहर नहीं कर सकते, क्योंकि मैं इसे .ts फ़ाइलों के अंदर की जरूरत है।

उस के लिए कोई समाधान?

09/03/2017 को 05:58
का स्रोत उपयोगकर्ता

वोट
0

अपने tsconfig.json में आप एक भूल रहे हैं moduleResolutionसंपत्ति बताने के लिए tscकैसे मॉड्यूल को हल करने:

moduleResolution: 'node'
09/03/2017 को 04:20
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more