Ошибка: не удается найти модуль '@ angular / compiler-cli / src / perform_compile' при запуске ng-packagr

У меня новая установка windows, и я впервые пытаюсь запустить ng-packagr.

Я получаю сообщение об ошибке:

Error: Cannot find module '@angular/compiler-cli/src/perform_compile'
    at Function.Module._resolveFilename (module.js:547:15)
    at Function.Module._load (module.js:474:25)
    at Module.require (module.js:596:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (C:\Users\MyUser\AppData\Roaming\npm\node_modules\ng-packagr\lib\ts\tsconfig.js:3:12)
    at Module._compile (module.js:652:30)
    at Object.Module._extensions..js (module.js:663:10)
    at Module.load (module.js:565:32)
    at tryModuleLoad (module.js:505:12)
    at Function.Module._load (module.js:497:3)

Я установил angular CLI, запустив

npm install -g @angular/cli@latest

Он работает под управлением v6.0.8

Мой ng-package.json:

{
    "$schema": "./node_modules/ng-packagr/ng-package.schema.json",
    "lib": {
        "entryFile": "index.ts",
        "externals": {
            "moment": "moment"
        }
    }
}

Что мне здесь не хватает?


person Scottie    schedule 02.07.2018    source источник


Ответы (1)


Эй, недавно решил похожую проблему, вы можете попробовать следующее:

  1. Установите последнюю версию node.js (удалите предыдущую версию)

  2. Установите последнюю версию angular-cli глобально

    npm uninstall -g angular-cli
    npm cache clean or npm cache verify (if npm > 5)
    npm install -g @angular/cli@latest
    
  3. Создайте новый проект с помощью angular-cli ng new projectname

  4. Скопируйте свои файлы (модули, компонент, директиву и т. Д.) Во вновь созданный проект из старого.

  5. Установить ng-packagr npm i ng-packagr

  6. Отредактируйте свой package.json (корневой проект)

    "scripts": {
        "packagr": "ng-packagr -p ng-package.json"
    }
    

    Удалите зависимости или переместите все в peerDependencies, поскольку вы собираетесь создать функциональный модуль.

  7. ng-package.json (в вашем случае может быть иначе, но вы можете попробовать это)

    {
      "$schema": "./node_modules/ng-packagr/ng-package.schema.json",
      "lib": {
        "entryFile": "public_api.ts"
      }
    }
    
  8. public_api.ts (обновить относительный путь к вашему модулю)

    export * from './src/app/modules/yourmodulename/yourmodulename.module
    

Вот и все, теперь вы можете запустить npm run packagr, он должен работать и сгенерировать папку dist.

Вы можете публиковать на npmjs, используя npm publish dist

Вот как я это решил.

person Haider    schedule 29.07.2018
comment
Да, я понял, что вам нужно установить ng-packagr v1.x, иначе он не сработает. - person Scottie; 29.07.2018