Nx пользовательские схемы c в хранилище не удалось загрузить - PullRequest
1 голос
/ 06 января 2020

Я установил репозиторий для пользовательского компоновщика Nx и схем для создания приложения / init. Первоначально я разработал его в папке tools / schematics и все работало, но решил, что он должен жить в своем собственном репо. Я добавил в пакет схемы (collection. json) и компоновщики (builders. json). json и настроил два файла. Кажется, все до этого работает. Я использовал ссылку пряжи, чтобы добавить схемы к своему nx monorepo (поэтому мне не нужно повторять pu sh во время тестирования), а затем попытался добавить приложение с nx g nx-name:app, но я получаю ошибку, что это Не удалось найти модуль для схемы c.

Я много пробовал, прежде чем опубликовать это. Переименование файлов. Используя index.ts. Переустановка node_modules. Повторное связывание в пряже.

Ошибка:

Cannot find module 'C:\...\monorepo\node_modules\nx-name\src\schematics\application\application'
Require stack:
- C:\...\monorepo\node_modules\@angular-devkit\schematics\tools\export-ref.js
- C:\...\monorepo\node_modules\@angular-devkit\schematics\tools\index.js
- C:\...\monorepo\node_modules\@nrwl\workspace\src\command-line\workspace-schematic.js
- C:\...\monorepo\node_modules\@nrwl\workspace\src\command-line\nx-commands.js
- C:\...\monorepo\node_modules\@nrwl\workspace\index.js
- C:\...\monorepo\node_modules\@nrwl\cli\lib\init-local.js
- C:\...\monorepo\node_modules\@nrwl\cli\bin\nx.js
- C:\...\AppData\Roaming\npm\node_modules\@nrwl\cli\bin\nx.js

Моя коллекция. json:

{
    "name": "nx-name",
    "version": "0.0.1",
    "extends": [
        "@nrwl/workspace"
    ],
    "schematics": {
        "init": {
            "factory": "./src/schematics/init/init",
            "schema": "./src/schematics/init/schema.json",
            "description": "Initialize the plugin",
            "aliases": [
                "ng-add"
            ],
            "hidden": true
        },
        "application": {
            "factory": "./src/schematics/application/application",
            "schema": "./src/schematics/application/schema.json",
            "description": "Create an application",
            "aliases": [
                "app"
            ]
        }
    }
}

Структура моей папки:

- src
    - builders
        - build
            - build.impl.ts
            - schema.json
    - schematics
        - application
            - files
                - a bunch of template files
            - application.ts
            - schema.d.ts
            - schema.json
        - init
            - init.ts
            - schema.d.ts
            - schema.json
- .gitignore
- builders.json
- collection.json
- package.json
- tsconfig.json
- index.ts
- yarn.lock

Обновление:

Указание фабрики сбора в папку dist, кажется, запускает ее частично? JSON файлы обновляются, но компоновщик не запускается и не генерирует файлы из шаблонов. Может быть, мне нужно что-то настроить, чтобы он знал, как создать источник машинописного текста?

Добавление пакета. json deps:

"dependencies": {
    "@angular-devkit/architect": "^0.803.21",
    "@angular-devkit/core": "8.3.14",
    "@angular-devkit/schematics": "8.3.14",
    "shelljs": "^0.8.3",
    "typescript": "~3.5.3"
},
"devDependencies": {
    "@nrwl/workspace": "^8.9.0",
    "@types/node": "^13.1.4",
    "@types/shelljs": "^0.8.6"
}

1 Ответ

0 голосов
/ 08 января 2020

Оказывается, я выводил машинописные сборки в папку dist. Не делайте этого, иначе он нарушит все пути к коллекции. json и любые файлы, используемые для шаблонов. Просто создайте файлы js в тех же местах, что и файлы ts.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...