2017-03-13 63 views
1

我的角度2库中的我的AccordionModule似乎不是在第一次编译angular-cli期间不是NgModule,但他错误后单独重新加载,然后他可以编译和模块识别。我的库模块不识别为NgModule

Time: 7903ms 
    chunk {0} polyfills.bundle.js, polyfills.bundle.js.map (polyfills) 158 kB {4} [initial] [rendered] 
    chunk {1} main.bundle.js, main.bundle.js.map (main) 11.4 kB {3} [initial] [rendered] 
    chunk {2} styles.bundle.js, styles.bundle.js.map (styles) 9.77 kB {4} [initial] [rendered] 
    chunk {3} vendor.bundle.js, vendor.bundle.js.map (vendor) 2.6 MB [initial] [rendered] 
    chunk {4} inline.bundle.js, inline.bundle.js.map (inline) 0 bytes [entry] [rendered] 

    ERROR in AccordionModule is not an NgModule 
    webpack: Failed to compile. 
    webpack: Compiling... 
    Hash: 422f957171e71c80b1cf               
    Time: 1999ms 
    chunk {0} polyfills.bundle.js, polyfills.bundle.js.map (polyfills) 158 kB {4} [initial] 
    chunk {1} main.bundle.js, main.bundle.js.map (main) 11.4 kB {3} [initial] 
    chunk {2} styles.bundle.js, styles.bundle.js.map (styles) 9.77 kB {4} [initial] 
    chunk {3} vendor.bundle.js, vendor.bundle.js.map (vendor) 2.6 MB [initial] 
    chunk {4} inline.bundle.js, inline.bundle.js.map (inline) 0 bytes [entry] 
    webpack: Compiled successfully. 

我试图升级typescript到版本2.0.102.0.3但这种改变什么。

这里是我的依赖关系:

"peerDependencies": { 
     "@angular/common": "^2.4.0", 
     "@angular/compiler": "^2.4.0", 
     "@angular/core": "^2.4.0", 
     "@angular/platform-browser": "^2.4.0", 
     "core-js": "2.4.1", 
     "typescript": "2.0.10", 
     "zone.js": "^0.7.6" 
    }, 
    "devDependencies": { 
     "@angular/compiler-cli": "^2.4.0", 
     "@angular/platform-server": "^2.4.0", 
     "@types/jasmine": "2.5.38", 
     "@types/node": "6.0.60", 
     "rimraf": "^2.5.4" 
    } 

而且我tsconfig:

{ 
    "compilerOptions": { 
     "baseUrl": "", 
     "target": "es5", 
     "module": "es2015", 
     "moduleResolution": "node", 
     "declaration": true, 
     "noImplicitAny": false, 
     "strictNullChecks": true, 
     "sourceMap": false, 
     "emitDecoratorMetadata": true, 
     "experimentalDecorators": true, 
     "outDir": "./dist", 
     "rootDir": "./src", 
     "skipLibCheck": true, 
     "stripInternal": true, 
     "typeRoots": ["./node_modules/@types"], 
     "types": [ 
      "node" 
     ], 
     "lib": [ 
      "dom", 
      "es2015" 
     ], 
     "paths": { 
      "@angular/core": ["node_modules/@angular/core"] 
     } 
    }, 
    "compileOnSave": false, 
    "buildOnSave": false, 
    "exclude": [ 
     "node_modules", 
     "dist", 
     "tests", 
     "**/*.ngfactory.ts", 
     "**/*.shim.ts" 
    ], 
    "angularCompilerOptions": { 
     "genDir": "dist", 
     "entryModule": "src/lib/module#AccordionModule", 
     "skipTemplateCodegen": true, 
     "strictMetadataEmit": true 
    } 
} 

回答

0

使用NGC编译器替代TSC编译器编译的你的包在AOT。你可以将它指向同一个tsconfig文件。

npm install @angular/compiler-cli @angular/platform-server --save 
node_modules/.bin/ngc -p tsconfig-aot.json 

//Windows users should surround the ngc command in double quotes: 
"node_modules/.bin/ngc" -p tsconfig.json 

本文https://angular.io/docs/ts/latest/cookbook/aot-compiler.html#!#compile

的更多细节NGC编译器将那角用来识别您的模块输出额外的元数据。

相关问题