我创建了一个角度库:@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.ts
和app.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并从那里安装它,它就可以工作。
感谢。
答案 0 :(得分:0)
似乎,即使安装了.tgz文件,angular-cli仍会在paths
的{{1}}部分(通常为tsconfig.json
)中寻找该模块。
问题是dist/@namespace/lib
在编译之前先删除dist文件夹的内容,因此当它尝试实际构建应用程序时,模块不再存在。我通过指定build命令的输出来解决这个问题,以便应用程序转到另一个文件夹。
ng build --prod