Angular 6 库 - 找不到入口点

7
我在构建angular库项目时遇到了以下错误。
Building Angular Package
Building entry point '@abc/lib'
Compiling TypeScript sources through ngc
Bundling to FESM2015

BUILD ERROR
Could not resolve entry (C:\Dev\abc\build\dist-npm\esm2015\abc-lib.js)
Error: Could not resolve entry (C:\Dev\abc\build\dist-npm\esm2015\abc-lib.js)
    at error (C:\Dev\abc\node_modules\rollup\dist\rollup.js:3460:30)
    at C:\Dev\AppBuilder\node_modules\rollup\dist\rollup.js:21474:17

Could not resolve entry (C:\Dev\abc\build\dist-npm\esm2015\abc-lib.js)
Error: Could not resolve entry (C:\Dev\abc\build\dist-npm\esm2015\abc-lib.js)
    at error (C:\Dev\abc\node_modules\rollup\dist\rollup.js:3460:30)
    at C:\Dev\AppBuilder\node_modules\rollup\dist\rollup.js:21474:17

当我在public_api.ts文件中添加新的module时,才会出现这个错误。

export * from './lib/designer.service';
export * from './lib/designer.component';
export * from './lib/designer.module';
export * from './lib/core/app-core.module'; // new module

我正在使用以下命令构建模块:

ng build lib

你知道为什么会出现这个错误吗?

???abc-lib.js??? 我从来没有听说过这样的东西... 问:这是你自己创建的Angular项目吗(例如使用“ng new”)? - paulsm4
1
abc-lib.js is the library name. Specified in package.json. Example : "name": "@abc/lib",The angular library project was generated using ng generate library lib - Abhishek
“abc-lib.js”这个名称让我感到有些“可疑”。问:为什么不从package.json中删除它(以及在项目中引用它的任何其他地方)? - paulsm4
1
这是我的测试库的名称。请检查构建输出 正在构建入口点 '@abc/lib' - Abhishek
天啊!我没意识到整个问题都是自己造成的 :( 建议:只需创建一个新的“hello world”项目(ng new hello),一个新的空的“hello world”库(ng g library hellolib),除了编辑您应用程序的一个 .ts 文件(例如 app.component.ts)以“导入”您的库之外,什么也不要做。正确拼写库名称!我敢打赌它会正常工作。另外:试试这个:https://blog.angularindepth.com/creating-a-library-in-angular-6-87799552e7e5 - paulsm4
2个回答

25

我曾经遇到过同样的问题。我的错误是:

在我的一个库服务中,我使用了环境变量,并像这样导入它:

import { environment } from 'src/environments/environment';

在构建过程中,它无法获取相对路径并显示错误。我将其删除后,它正常工作。

请确保您的库模块中,没有引用任何与主项目相关的项目或导入任何相对路径。


3
我也遇到了类似的问题:我有一个库引用了另一个库,但我还没有构建共享库。一旦我构建了共享库,这个“父”库就能成功构建了。 - lje
1
我也遇到了同样的问题:请确保你的导入引用了相对路径!谢谢! - domenu

2

我在组件库项目中遇到了同样的问题。 我是通过从dist文件夹引用A库来将A库引入B库的。 问题是由于通过路径引用库A导致的。

我通过正确地使用npm install A@0.0.1将库A安装到B库中来解决了这个问题。

这解决了我的问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接