删除Yeoman生成的代码中的包锁

时间:2019-05-29 15:54:58

标签: node.js yeoman yeoman-generator

我正在用Yeoman生成一个javascript项目,并使用安装队列来安装项目依赖项。安装工作和依赖项将安装在正确的文件夹中,但还会在与项目文件夹相同的级别上创建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}`);
});

还尝试了Yeoman的spawnCommandSync。

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文件夹中,而不是在此根级别。

0 个答案:

没有答案