Удалить пакет-блокировку в сгенерированном Yeoman-коде - PullRequest
0 голосов
/ 29 мая 2019

Я создаю проект javascript с Yeoman и использую очередь установки для установки зависимостей проекта. Работы по установке и зависимости установлены в правильной папке, но файл package-lock.json также был создан на том же уровне, что и папка проекта.

Этот файл package-lock.json имеет только один ключ и одно значение. Я не хочу этот файл.

{
  "lockfileVersion": 1
}

Вот структура папок:

package
--ui (dependencies are installed in here just fine)
--package-json (the one I don't want)

Что я должен сделать, чтобы предотвратить создание этого дополнительного файла package-lock.json?

Моя среда: Node 10.15.3 npm 6.7.0 yeoman 2.0.6

Пробовал выполнять узлы child_process.exec после установки.

exec('rm package-lock.json', (error, stdout, stderr) => {
  if (error) {
    console.error(`exec error: ${error}`);
    return;
  }
  console.log(`stdout: ${stdout}`);
  console.log(`stderr: ${stderr}`);
});

Также пробовал спа YeoCommandSync.

this.spawnCommandSync('rm', ['package-lock.json'], {
  shell: true,
});

Моя writing() очередь, которая записывает package.json в указанный мной каталог:

async writing() {
  // generating other templates

  const pkgJson = createPkgJson(config);
  await this.fs.extendJSON( 
    this.destinationPath(`ui/package.json`),pkgJson);
}

При использовании exec я получаю это сообщение об ошибке exec error: Error: Command failed: rm package-lock.json.

Тогда npm дает мне эту ошибку, npm WARN saveError ENOENT: no such file or directory, open '/path/to/my/root/project/package.json'. Папка ui также находится по этому пути '/path/to/my/root/project/'. Проблема в том, что у меня нет файла package.json, так как я указываю yeoman для установки внутри папки ui, а не на этом корневом уровне.

...