【发布时间】:2020-10-12 14:23:13
【问题描述】:
这是我第一次在原理图领域工作,所以很可能我没有正确设置。但我一直在关注 angular.io 上的指南和一些额外的博客演练。我想将 ng-add 和 ng-update 原理图打包到一个组件库中,我已经设置好并且运行良好。在为 ng-add 设置初始管道之后,我编写了一个简单的单元测试来验证设置,一旦它调用 new SchematicTestRunner,它就会爆发大量未找到模块的错误,包括 child_process和FS。事实上,我在单元测试中注释掉了除了创建测试运行器之外的所有内容,只是为了确定断点。除了按原样返回树之外,原理图本身还没有做任何事情。有趣的是,schematics-cli 生成的“空白”/示例原理图项目根本没有使用 ng test,而是直接使用了 jasmine。但是由于这是在具有完整测试套件的现有 Angular 库中,我想以相同的方式进行测试。对此的任何帮助,将不胜感激!
错误部分:
ERROR in C:/Users/<username>/src/fabric/ui/node_modules/@angular-devkit/schematics/tasks/node-package/executor.js
Module not found: Error: Can't resolve 'child_process' in 'C:\Users\<username>\src\fabric\ui\node_modules\@angular-devkit\schematics\tasks\node-package'
resolve 'child_process' in 'C:\Users\<username>\src\fabric\ui\node_modules\@angular-devkit\schematics\tasks\node-package'
Parsed request is a module
using description file: C:\Users\<username>\src\fabric\ui\node_modules\@angular-devkit\schematics\package.json (relative path: ./tasks/node-package)
Field 'browser' doesn't contain a valid alias configuration
resolve as module
looking for modules in C:/Users/<username>/src/fabric/ui
using description file: C:\Users\<username>\src\fabric\ui\package.json (relative path: .)
Field 'browser' doesn't contain a valid alias configuration
using description file: C:\Users\<username>\src\fabric\ui\package.json (relative path: ./child_process)
no extension
Field 'browser' doesn't contain a valid alias configuration
C:\Users\<username>\src\fabric\ui\child_process doesn't exist
.ts
Field 'browser' doesn't contain a valid alias configuration
C:\Users\<username>\src\fabric\ui\child_process.ts doesn't exist
.tsx
Field 'browser' doesn't contain a valid alias configuration
C:\Users\<username>\src\fabric\ui\child_process.tsx doesn't exist
.mjs
Field 'browser' doesn't contain a valid alias configuration
C:\Users\<username>\src\fabric\ui\child_process.mjs doesn't exist
.js
Field 'browser' doesn't contain a valid alias configuration
C:\Users\<username>\src\fabric\ui\child_process.js doesn't exist
as directory
C:\Users\<username>\src\fabric\ui\child_process doesn't exist
C:\Users\<username>\src\fabric\ui\node_modules\@angular-devkit\schematics\tasks\node-package\node_modules doesn't exist or is not a directory
C:\Users\<username>\src\fabric\ui\node_modules\@angular-devkit\schematics\tasks\node_modules doesn't exist or is not a directory
C:\Users\<username>\src\fabric\ui\node_modules\@angular-devkit\node_modules doesn't exist or is not a directory
C:\Users\<username>\src\fabric\ui\node_modules\node_modules doesn't exist or is not a directory
C:\Users\<username>\src\fabric\node_modules doesn't exist or is not a directory
C:\Users\<username>\src\node_modules doesn't exist or is not a directory
C:\Users\<username>\node_modules doesn't exist or is not a directory
C:\Users\node_modules doesn't exist or is not a directory
C:\node_modules doesn't exist or is not a directory
looking for modules in C:\Users\<username>\src\fabric\ui\node_modules\@angular-devkit\schematics\node_modules
using description file: C:\Users\<username>\src\fabric\ui\node_modules\@angular-devkit\schematics\package.json (relative path: ./node_modules)
Field 'browser' doesn't contain a valid alias configuration
looking for modules in C:\Users\<username>\src\fabric\ui\node_modules
using description file: C:\Users\<username>\src\fabric\ui\package.json (relative path: ./node_modules)
Field 'browser' doesn't contain a valid alias configuration
using description file: C:\Users\<username>\src\fabric\ui\node_modules\@angular-devkit\schematics\package.json (relative path: ./node_modules/child_process)
no extension
Field 'browser' doesn't contain a valid alias configuration
using description file: C:\Users\<username>\src\fabric\ui\package.json (relative path: ./node_modules/child_process)
no extension
Field 'browser' doesn't contain a valid alias configuration
C:\Users\<username>\src\fabric\ui\node_modules\@angular-devkit\schematics\node_modules\child_process doesn't exist
.ts
Field 'browser' doesn't contain a valid alias configuration
C:\Users\<username>\src\fabric\ui\node_modules\child_process doesn't exist
.ts
Field 'browser' doesn't contain a valid alias configuration
C:\Users\<username>\src\fabric\ui\node_modules\@angular-devkit\schematics\node_modules\child_process.ts doesn't exist
.tsx
Field 'browser' doesn't contain a valid alias configuration
C:\Users\<username>\src\fabric\ui\node_modules\child_process.ts doesn't exist
.tsx
Field 'browser' doesn't contain a valid alias configuration
C:\Users\<username>\src\fabric\ui\node_modules\@angular-devkit\schematics\node_modules\child_process.tsx doesn't exist
.mjs
Field 'browser' doesn't contain a valid alias configuration
C:\Users\<username>\src\fabric\ui\node_modules\child_process.tsx doesn't exist
.mjs
Field 'browser' doesn't contain a valid alias configuration
C:\Users\<username>\src\fabric\ui\node_modules\@angular-devkit\schematics\node_modules\child_process.mjs doesn't exist
.js
Field 'browser' doesn't contain a valid alias configuration
C:\Users\<username>\src\fabric\ui\node_modules\child_process.mjs doesn't exist
.js
Field 'browser' doesn't contain a valid alias configuration
C:\Users\<username>\src\fabric\ui\node_modules\@angular-devkit\schematics\node_modules\child_process.js doesn't exist
as directory
C:\Users\<username>\src\fabric\ui\node_modules\@angular-devkit\schematics\node_modules\child_process doesn't exist
C:\Users\<username>\src\fabric\ui\node_modules\child_process.js doesn't exist
as directory
C:\Users\<username>\src\fabric\ui\node_modules\child_process doesn't exist
[C:\Users\<username>\src\fabric\ui\child_process]
[C:\Users\<username>\src\fabric\ui\child_process.ts]
[C:\Users\<username>\src\fabric\ui\child_process.tsx]
[C:\Users\<username>\src\fabric\ui\child_process.mjs]
[C:\Users\<username>\src\fabric\ui\child_process.js]
[C:\Users\<username>\src\fabric\ui\node_modules\@angular-devkit\schematics\tasks\node-package\node_modules]
[C:\Users\<username>\src\fabric\ui\node_modules\@angular-devkit\schematics\tasks\node_modules]
[C:\Users\<username>\src\fabric\ui\node_modules\@angular-devkit\node_modules]
[C:\Users\<username>\src\fabric\ui\node_modules\node_modules]
[C:\Users\<username>\src\fabric\node_modules]
[C:\Users\<username>\src\node_modules]
[C:\Users\<username>\node_modules]
[C:\Users\node_modules]
[C:\node_modules]
[C:\Users\<username>\src\fabric\ui\node_modules\@angular-devkit\schematics\node_modules\child_process]
[C:\Users\<username>\src\fabric\ui\node_modules\child_process]
[C:\Users\<username>\src\fabric\ui\node_modules\@angular-devkit\schematics\node_modules\child_process.ts]
[C:\Users\<username>\src\fabric\ui\node_modules\child_process.ts]
[C:\Users\<username>\src\fabric\ui\node_modules\@angular-devkit\schematics\node_modules\child_process.tsx]
[C:\Users\<username>\src\fabric\ui\node_modules\child_process.tsx]
[C:\Users\<username>\src\fabric\ui\node_modules\@angular-devkit\schematics\node_modules\child_process.mjs]
[C:\Users\<username>\src\fabric\ui\node_modules\child_process.mjs]
[C:\Users\<username>\src\fabric\ui\node_modules\@angular-devkit\schematics\node_modules\child_process.js]
[C:\Users\<username>\src\fabric\ui\node_modules\child_process.js]
@ C:/Users/<username>/src/fabric/ui/node_modules/@angular-devkit/schematics/tasks/node-package/executor.js 11:24-48
@ C:/Users/<username>/src/fabric/ui/node_modules/@angular-devkit/schematics/tasks/node/index.js
@ C:/Users/<username>/src/fabric/ui/node_modules/@angular-devkit/schematics/testing/schematic-test-runner.js
@ C:/Users/<username>/src/fabric/ui/node_modules/@angular-devkit/schematics/testing/index.js
@ ./schematics/ng-add/index.spec.ts
@ . sync \.spec\.ts$
@ ./test.ts
【问题讨论】:
-
您找到解决此问题的方法了吗?我现在遇到了同样的问题,但也是从原理图开始的。
-
@Brudus 很遗憾没有。仍在试图弄清楚。希望这里有更多原理图经验的人可以为我指明正确的方向。我也一直在通过 github repos 寻找一些迹象。如果我弄清楚了,我会在这里报告。
-
我发现它实际上与库无关。我可以创建一个全新的项目。运行
ng test,一切正常。如果我然后添加SchematicTestRunner,它将导致您在上面列出的问题。对我来说,即使 Angular 团队说不是,这也是一个错误。无论如何,它至少记录得很差。 -
@Brudus 哦,是的,我知道正是那条特定的线路让我崩溃了。除了 BeforeEach 块中的那一行之外,我已经在我的测试代码中注释了所有其他内容,这绝对是失败的地方。我最初在 angular-cli repo 中提出了一个问题,但他们说要在这里发布,他们不提供支持。我告诉他们你说的同样的事情:他们至少应该考虑提供一些关于原理图单元测试的文档,至少。目前覆盖率为零。
标签: angular-cli angular-schematics