我一直在研究nrwl扩展,它们看起来很棒。但是,当我按照他们的Workspace Specific Schematics教程学习时,最后一步不会向我显示要运行的命令。您能告诉我如何运行创建的原理图吗?我敢肯定它很简单,但是我在任何地方都找不到该命令。
答案 0 :(得分:4)
用于原理图的Nx生成器并没有完成您的原理图工作所需的一切。我从下面中学到的是通过遵循this blog post by the Angular Team在另一个目录中创建空白原理图而获得的,我建议遵循以下内容以大致了解原理图。
以下粗略步骤应有助于您上路:
ng g workspace-schematic
例如,在collection.json
目录中添加tools/schematics
文件
{
"$schema": "../../node_modules/@angular-devkit/schematics/collection-schema.json",
"name": "myCustomCollection",
"version": "0.0.1",
"extends": ["@nrwl/schematics"],
"schematics": {
"data-access-lib": {
"factory": "./data-access-lib",
"schema": "./data-access-lib/schema.json",
"description": "Create a Data Access Library"
}
}
}
请注意extends
属性,这意味着您的集合(如果没有特定的原理图)将在失败之前查看Nx原理图以尝试找到它
schematics
中添加一个package.json
字段,该字段指向collection.json
文件(例如"schematics": "./tools/schematics/collection.json"
)的相对位置package.json
脚本来运行tsc -p tools/tsconfig.typescript.json
(您应该修改tsconfig文件以将已编译的js保留在原处)angular.json
以默认指向您的收藏集。 cli > defaultCollection = "."
(最初对我来说是@nrwl/schematics
)
ng g ../..:data-access-lib
ng g data-access-lib
(如果完成了第5步)或ng g .:data-access-lib
Nx原理图生成器似乎有一些主要差距,但是希望这可以帮助您回到正轨。
答案 1 :(得分:4)
您可以使用以下命令在NX工作区中添加自定义集合:ng generate @nrwl/schematics:workspace-schematic <name-schematic>
然后,您可以使用npm run workspace-schematic <name-schematic>
来运行该原理图。
使用@ nrwl / schematics:workspace-schematic创建的默认逻辑示意图需要一个'name'参数。您可以为其提供:npm run workspace-schematic <name-schematic> --name my funky name
@ nrwl / nx版本中:“ 6.4.0”
答案 2 :(得分:1)
按照James的5个步骤,我拥有了factory属性来定位已编译的js文件:
{
"$schema": "../../node_modules/@angular-devkit/schematics/collection-schema.json",
"name": "sk",
"version": "0.0.1",
"extends": ["@nrwl/schematics"],
"schematics": {
"data-access-lib": {
"factory": "../../dist/out-tsc/tools/schematics/data-access-lib",
"schema": "./data-access-lib/schema.json",
"description": "Create a Data Access Library"
}
}
}
在此之后,它运行完美!
答案 3 :(得分:1)
我知道这篇文章有点老,但是我建议您使用由Nrwl团队开发的Angular Console,它超级方便,并且我已使用它来创建工作区原理图并运行它们。只需打开Angular Console,选择您的工作区,然后:
单击那里,您将获得以下信息:
在创建之后,您可以返回到第一个屏幕的角度,在那里您将看到它:
在命令行中将如下所示:
ng generate @nrwl/schematics:workspace-schematic data-access-lib --no-interactive
idf-monorepo
此时,您的工作区中应包含以下内容:
完成实现后,您可以返回角度控制台,您应该会看到类似以下内容:
只需单击它,您将获得以下内容:
根据原理图,您将在此屏幕中当然会获得不同的字段。就我而言,我只有一个定义为属性的名称。
确定在此屏幕中输入所需的信息,然后单击生成,或者如果要手动执行,请执行以下操作:
npm run workspace-schematic -- data-access-lib data-access-common --no-interactive
您还可以从他们的新书中获得有关原理图生成和体系结构的更多详细信息:https://go.nrwl.io/angular-enterprise-monorepo-patterns-new-book
答案 4 :(得分:0)
由于要创建用于生成data-access-lib
的工作区示意图,因此命令应为:
ng g data-access-lib <name>
据我所知,它具有name
属性,并且应该以{{1}}开头
所以最后:
data-access