0

在我的 Nx 工作区的根目录中,当我运行命令时,它会在我的工作区根目录的文件夹中ng g lib my-lib生成一个名为的服务。我希望它会在libs文件夹 ( )中创建一个新的库。(在我升级到 v6 之前,它曾经这样做过。)MyLibServicemyLib/src/libslibs/my-lib/src

此外,创建服务后,我的文件中不会添加任何内容。angular.json

所以至少有三个问题:

  1. 生成工件的路径是错误的。
  2. 它正在生成 aservice而不是 alib
  3. 没有任何记录angular.json

我究竟做错了什么?

谢谢。

更新#1

我创建了一个新的测试工作区,添加了一个应用程序,并使用与上面相同的命令向其中添加了一个库。一切都按预期工作,所以我认为这意味着我的环境(包等)是正确的。我比较了虚拟工作区和我的真实工作区的 angular.json 文件,发现我的真实工作区缺少一个似乎相关的条目:"defaultCollection": "@nrwl/schematics".

我添加了该条目,现在当我尝试创建一个库时,它会在那里停留 10-15 秒,然后报告:

ERROR! test2/karma.conf.js does not exist..
ERROR! test2/ng-package.json does not exist..
ERROR! test2/ng-package.prod.json does not exist..
ERROR! test2/package.json does not exist..
ERROR! test2/tsconfig.lib.json does not exist..
ERROR! test2/tsconfig.spec.json does not exist..
ERROR! test2/tslint.json does not exist..
ERROR! test2/src/test.ts does not exist..
ERROR! test2/src/index.ts does not exist..
ERROR! test2/src/lib/test2.component.ts does not exist..
ERROR! test2/src/lib/test2.module.ts does not exist..
ERROR! libs/test2/src/lib/test2.module.ts does not exist..
ERROR! libs/test2/src/index.ts does not exist..
ERROR! libs/test2/tsconfig.lib.json does not exist..
ERROR! libs/test2/tsconfig.spec.json does not exist..
ERROR! libs/test2/tslint.json does not exist..
ERROR! libs/test2/karma.conf.js does not exist..
The Schematic workflow failed. See above.

'test2' 是我尝试创建的库的名称

现在,任何地方都没有创建任何内容,并且我的 angular.json 没有被修改。

我正在继续深入研究这一点。

4

1 回答 1

0

解决了。我将我真实工作区package.json中的所有包版本重置为有效的版本package.json(通常是 Angular 6.0.1)。清除我的node_modules文件夹并运行纱线。现在一切正常。

在 Nrwl/Nx GitHub repo 上的一个无关问题上,Victor Savkin 评论说 Angular 6.1 在 Nx 6.2 之前将不受支持。

经验教训:不要总是更新到最新版本……稍等片刻,落后一两圈,除非你有特定的升级理由!

于 2018-07-29T18:46:34.977 回答