Angular CLI无法从本地安装的库中找到模块

时间:2018-06-06 12:43:13

标签: angular angular-cli

我创建了一个角度库:@my_library/sdk并创建了一个示例项目来测试它。问题是,在我的示例项目中安装库时,angular的构建抱怨它无法找到模块:

   ./src/app/app.module.ts中的错误找不到模块:错误:不能   解决'@ my_library / sdk'中的问题   '/用户/ eestein /文件的/ dev / my_library / SDK-前/样品/ SRC /应用'   ./src/app/app.component.ts中的错误找不到模块:错误:不能   解决'@ my_library / sdk'中的问题   '/用户/ eestein /文件的/ dev / my_library / SDK-前/样品/ SRC /应用'

如果我在VSCode中打开了两个有问题的文件(app.component.tsapp.module.ts),则不会显示错误。看起来VSCode可以找到它,但Angular CLI不能。该软件包也在node_modules的文件夹中。

这就是我在样本项目package.json中的内容:

"@my_library/sdk": "file:///Users/eestein/Documents/dev/my_library/sdk-front/library/my_library-sdk-1.0.0-alpha.2.tgz"

这是我的文件夹结构:

- library
   - library's code
   - *.tgz file
- samples
    - samples' code
    - package.json referencing the tgz file

我在angular的cli GitHub页面上打开了一个问题,但它已经过了8天而且没有回复,所以我现在正在尝试......

这是问题的链接:https://github.com/angular/angular-cli/issues/11054

设置

Angular CLI: 1.7.4
Node: 7.7.3
OS: darwin x64
Angular: 5.1.3
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router

@angular/cli: 1.7.4
@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
typescript: 2.4.2
webpack: 3.11.0

关于问题可能是什么的任何想法?问题是本地的,如果我将库发布到我的私人npm repo并从那里安装它,它就可以工作。

感谢。

1 个答案:

答案 0 :(得分:0)

似乎,即使安装了.tgz文件,angular-cli仍会在paths的{​​{1}}部分(通常为tsconfig.json)中寻找该模块。

问题是dist/@namespace/lib在编译之前先删除dist文件夹的内容,因此当它尝试实际构建应用程序时,模块不再存在。我通过指定build命令的输出来解决这个问题,以便应用程序转到另一个文件夹。

ng build --prod