TypeError [ERR_INVALID_ARG_VALUE] при попытке импортировать модуль из моей библиотеки в Angular 6 - PullRequest
0 голосов
/ 19 сентября 2019

Я пытаюсь использовать созданную библиотеку Angular 6 в приложении.Мне удалось создать, настроить и скомпилировать библиотеку, следуя этому руководству , но я не могу использовать его в другом Angular-проекте.Я создал локальный пакет с npm pack и установил его в приложение Angular с npm install, используя путь к файлу .tgz.Вот некоторая информация:

Библиотека tsconfig.json

{
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "module": "es2015",
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "target": "es5",
    "typeRoots": ["node_modules/@types"],
    "lib": ["es2017", "dom"],
    "paths": {
      "lib-components": ["dist/lib-components"],
      "lib-components/*": ["dist/lib-components/*"]
    }
  }
}

public_api.ts

/*
 * Public API Surface of lib-components
 */

export * from './lib/components/spinner/spinner.module';

Оператор импорта в приложении потребителя:

import { BootstrapSpinnerModule } from 'lib-components';

Ошибка:

TypeError [ERR_INVALID_ARG_VALUE]: The argument 'path' must be a string or
Uint8Array without null bytes. 
Received 'path_to_app_root/src/\u0000commonjsHelpers.js/package.json'
    at readFile (fs.js:296:3)
...

Версии:

"@angular/cli": "~6.2.9" для потребителя и библиотеки

"@angular/*": "6.1.0" для потребителя и библиотеки

Iпробовал каждое предложение, которое я нашел в проблемах Github, но не повезло.

1 Ответ

0 голосов
/ 23 сентября 2019

Создание новой библиотеки с нуля, похоже, исправило это.Во-первых, не могу точно определить причину, по которой это не сработало, но вот несколько шагов, которые я предпринял на случай, если в будущем вы столкнетесь с той же проблемой:

  • Убедитесь, что ваш angular-cli version является последней стабильной версией для вашей основной версии (пришлось обновить с 6.1.x до 6.2.9), и помните, что ваша локальная версия cli переопределяет глобальную, поэтому вам, вероятно, придется обновить обе (в вопросеЯ говорю, что использую последнюю версию cli, но я сгенерировал библиотеку с версией 6.1.x и после того, как все сломалось, я попытался обновить cli. Не делайте этого. Если вы обновляете cli, создайте новую библиотеку.
  • Не знаю, так ли это, но я переименовал библиотеку на случай, если случайно использовал какое-то зарезервированное слово (от lib-components до my-company-components)
...