npm build failed:模块声明的意外值'undefined'中的ERROR

时间:2018-03-27 15:19:29

标签: node.js angular npm ng-packagr

我正在尝试构建我的angular5项目,但它失败了。


这是 deps树的摘录:

simple-kaishi< - kaishi< - ngx-admin-lte


ngx-admin-lte :(开发分支)是流行的管理主题

的角度版本

kaishi :( master branch)是我的核心库,包含ngx-admin-lte并添加了其他核心功能。

simple-kaishi :( master branch)是我的示例项目,包括kaishi


重现

  1. clone kaishi
  2. 揩拭> npm install
  3. 揩拭> {ka包装kaishi作为特色库
  4. npm run packagr
  5. clone simple-kaishi
  6. 简单揩拭> npm install
  7. 简单揩拭> npm link ../kaishi/dist
  8. 简单揩拭> npm start应该没问题
  9. 简单揩拭> npm run build构建失败!
  10. 构建错误

      

    错误输入:模块声明的意外值'undefined'       '/git/simple-kaishi/node_modules/kaishi/node_modules/ngx-admin-lte/ngx-admin-lte.d.ts'中的'NgxAdminLteModule'

    什么事?


    - 详情 -

    我的ng -- version

    Angular CLI: 1.7.3
    Node: 8.10.0
    OS: win32 x64
    Angular: 5.2.9
    ... animations, common, compiler, compiler-cli, core, forms
    ... http, language-service, platform-browser
    ... platform-browser-dynamic, router
    
    @angular/cli: 1.7.3
    @angular-devkit/build-optimizer: 0.3.2
    @angular-devkit/core: 0.3.2
    @angular-devkit/schematics: 0.3.2
    @ngtools/json-schema: 1.2.0
    @ngtools/webpack: 1.10.2
    @schematics/angular: 0.3.2
    @schematics/package-update: 0.3.2
    


    +++ UPDATE +++

    我注意到问题出现在ng build --prod但问题出现在ng build上。 我的proj结构不是原因,但原因在于外部库ngx-admin-lte

1 个答案:

答案 0 :(得分:1)

最后我明白了!

AOT编译选项存在问题。实际上,npm run build启动ng --prod这是--AOT=true的捷径。 ngx-admin-lte lib有一个错误。

comment帮我解决了。在主ts文件中,它需要替换所有后续导入,如下所示:
import { LogoComponent } from './widgets/logo'
搭配:
import { LogoComponent } from './widgets/logo.component'

我已将PR推送到ngx-admin-lte并修复了图书馆 我的项目结构还可以 如果这很有用,如果收到与此类似的错误,请查找AOT编译器问题。