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