目标入口点“@vcd/ui-components”缺少依赖项:
The target entry-point "@vcd/ui-components" has missing dependencies:
当我 npm start
在 https://github.com/juanmendes/vmware-cloud-director-ui-components 为名为 ryan-a11y-merge-to-master
的分支申请时,我收到以下错误。如果我 运行 master
分支,我不会收到任何错误。
ERROR in The target entry-point "@vcd/ui-components" has missing dependencies:
- @angular/core
- @clr/angular
- @angular/common
- rxjs/internal-compatibility
- @angular/platform-browser
- @angular/core/testing
- @angular/forms
- @angular/router
- rxjs
- rxjs/operators
- @clr/angular/data/datagrid/interfaces/filter.interface
在最后一个错误之前,我还看到了以下错误消息:
Warning: Entry point '@vmw/ng-live-docs' contains deep imports into '/Users/jmendes/git/github/juan-core-ui/node_modules/prismjs/components/prism-scss', '/Users/jmendes/git/github/juan-core-ui/node_modules/prismjs/components/prism-typescript'. This is probably not a problem, but may cause the compilation of entry points to be out of order.
Warning: Entry point '@vmw/plain-js-live-docs' contains deep imports into '/Users/jmendes/git/github/juan-core-ui/node_modules/lit-html/directives/unsafe-html'. This is probably not a problem, but may cause the compilation of entry points to be out of order.
Warning: Entry point '@vcd/ui-components' contains deep imports into '/Users/jmendes/git/github/juan-core-ui/node_modules/@clr/angular/data/datagrid/interfaces/filter.interface'. This is probably not a problem, but may cause the compilation of entry points to be out of order.
如果我要求同事克隆那个 repo 并且 运行 它:
git clone https://github.com/juanmendes/vmware-cloud-director-ui-components.git
cd vmware-cloud-director-ui-components;
git checkout ryan-a11y-merge-to-master;
npm ci;
npm start;
他们能够 运行 应用程序(并收到警告)没有问题,但我收到上述错误并在 localhost:4200 收到以下消息:Cannot GET /
我试过的
- 已删除 node_modules 和 dist 文件夹
- npm 缓存清理
- npm unlink @angular/core(包文件夹和包含它的项目中的两个步骤)
- npm unlink @vcd/ui-components(两个步骤)
- 完全删除节点、npm、nmv 并重新安装它们
解决方法
如果我禁用 Ivy 编译,那么它会抱怨,因为它使用的其中一个包 (@vmw/live-docs
) 没有为一些动态创建的组件声明 entryComponents
(因为它们在常春藤汇编).
为了解决这个问题,我将 @vmw/live-docs
中的代码修改为 entryComponents
并重新构建它,将其 dist 文件夹复制到我当前应用程序中的 node_modules。这允许我 运行 非常春藤模式下的应用程序,这不是我想要的
我还能尝试什么?
我没有办法尝试,欢迎提出任何建议。
发生这种情况是因为我有一个 ~/node_modules/@vcd/ui-components
引用过时了。
似乎 node module resolution 正在升级并尝试使用该版本而不是我在 ~/github/vmware-cloud-director-ui-components/tsconfig.json
中配置的版本
"compilerOptions": {
"paths": {
"@vcd/ui-components": [
"../../dist/components"
]
}
},
删除 node_modules
文件夹解决了我的问题
当我 npm start
在 https://github.com/juanmendes/vmware-cloud-director-ui-components 为名为 ryan-a11y-merge-to-master
的分支申请时,我收到以下错误。如果我 运行 master
分支,我不会收到任何错误。
ERROR in The target entry-point "@vcd/ui-components" has missing dependencies:
- @angular/core
- @clr/angular
- @angular/common
- rxjs/internal-compatibility
- @angular/platform-browser
- @angular/core/testing
- @angular/forms
- @angular/router
- rxjs
- rxjs/operators
- @clr/angular/data/datagrid/interfaces/filter.interface
在最后一个错误之前,我还看到了以下错误消息:
Warning: Entry point '@vmw/ng-live-docs' contains deep imports into '/Users/jmendes/git/github/juan-core-ui/node_modules/prismjs/components/prism-scss', '/Users/jmendes/git/github/juan-core-ui/node_modules/prismjs/components/prism-typescript'. This is probably not a problem, but may cause the compilation of entry points to be out of order.
Warning: Entry point '@vmw/plain-js-live-docs' contains deep imports into '/Users/jmendes/git/github/juan-core-ui/node_modules/lit-html/directives/unsafe-html'. This is probably not a problem, but may cause the compilation of entry points to be out of order.
Warning: Entry point '@vcd/ui-components' contains deep imports into '/Users/jmendes/git/github/juan-core-ui/node_modules/@clr/angular/data/datagrid/interfaces/filter.interface'. This is probably not a problem, but may cause the compilation of entry points to be out of order.
如果我要求同事克隆那个 repo 并且 运行 它:
git clone https://github.com/juanmendes/vmware-cloud-director-ui-components.git
cd vmware-cloud-director-ui-components;
git checkout ryan-a11y-merge-to-master;
npm ci;
npm start;
他们能够 运行 应用程序(并收到警告)没有问题,但我收到上述错误并在 localhost:4200 收到以下消息:Cannot GET /
我试过的
- 已删除 node_modules 和 dist 文件夹
- npm 缓存清理
- npm unlink @angular/core(包文件夹和包含它的项目中的两个步骤)
- npm unlink @vcd/ui-components(两个步骤)
- 完全删除节点、npm、nmv 并重新安装它们
解决方法
如果我禁用 Ivy 编译,那么它会抱怨,因为它使用的其中一个包 (@vmw/live-docs
) 没有为一些动态创建的组件声明 entryComponents
(因为它们在常春藤汇编).
为了解决这个问题,我将 @vmw/live-docs
中的代码修改为 entryComponents
并重新构建它,将其 dist 文件夹复制到我当前应用程序中的 node_modules。这允许我 运行 非常春藤模式下的应用程序,这不是我想要的
我还能尝试什么?
我没有办法尝试,欢迎提出任何建议。
发生这种情况是因为我有一个 ~/node_modules/@vcd/ui-components
引用过时了。
似乎 node module resolution 正在升级并尝试使用该版本而不是我在 ~/github/vmware-cloud-director-ui-components/tsconfig.json
"compilerOptions": {
"paths": {
"@vcd/ui-components": [
"../../dist/components"
]
}
},
删除 node_modules
文件夹解决了我的问题