簡體   English   中英

我的庫模塊無法識別為NgModule

[英]My library module is not recognize as an NgModule

angular-cli的第一次編譯過程中,我的angular 2庫中的AccordionModule似乎不是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
    }
}

使用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編譯器將輸出Angular用於識別模塊的額外元數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM