Невоспроизводимая установка с npm - PullRequest
1 голос
/ 09 апреля 2019

Я должен поддерживать проект, который использует npm, но я не знаю много об этом.

Точнее, у нас есть 2 общие библиотеки JS и куча кода для конкретной страницы (который полагаетсяв библиотеках) и мы используем npm и rollup для создания пакетов обслуживаемого кода для конкретной страницы.Библиотеки имеют файл package.json для своих зависимостей (D3.js, jQuery и т. Д.).На страницах также есть файл package.json для включения библиотек (с file:path/to/file) и других зависимостей.

Зависимости организованы следующим образом:

lib1/
lib2/
  requires "file:../lib1"
plugins/
  page1/
    requires "file:../../lib2"
  page2/
    requires "file:../../lib2"

В первой попытке,мы добавили package-lock.json и написали скрипт, который в основном переходит в lib1 для запуска npm install и rollup, затем делает то же самое в lib2 (как это зависит от lib1) и затем делает то же самоедля каждой страницы.

Хотя иногда это работает, мы сталкиваемся с случайными сбоями, такими как:

npm ERR! path /path/to/lib2/node_modules/.staging/@types/estree-39f5a558
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall rename
npm ERR! enoent ENOENT: no such file or directory, rename '/path/to/lib2/node_modules/.staging/@types/estree-39f5a558' -> '/path/to/lib1/node_modules/@types/estree'
npm ERR! enoent This is related to npm not being able to find a file.
npm ERR! enoent

Каталог /path/to/lib1/node_modules/@types/estree существует.

Иногда этот сбой lib2и иногда на странице.

Удаление package-lock.json не помогло.Использование shrinkwrap тоже не помогло.

Кто-нибудь знает, что идет не так?

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