我正在创建一个NODE JS CLI应用程序,它将根据用户提供的选项为用户生成脚手架。
我被困在cli应用程序需要从其存储库复制一组文件并放置在用户工作目录中的部分。我使用的代码是:
fs.copy('./template/core', '/', function (err)
{
if (err) return console.error(err)
console.log("success!")
});
模板/核心文件夹存在于cli app项目层次结构中
当我运行命令时,它给了我:
{错误:enent:没有这样的文件或目录,lstat './template/core'errno: 2代码:"ENOENT",系统调用:"lstat",路径:"。/模板/核心"}
我已经做了一个npm install -g,可以看到模板/core文件在/usr/lib/node_modules//
如果您能帮助解决这个问题,我将不胜感激
您正在尝试复制一个相对于当前工作目录(./
)的源文件,这应该相对于CLI脚本文件(如果我理解正确的话)。为此,您需要相对于__dirname
进行复制。
同样,您的目标(/
)反映了文件系统的根目录,但是您的文本说您想要将文件复制到当前工作目录,因此您应该使用.
这两件事结合起来会产生这样的结果:
const path = require('path');
fs.copy(path.resolve(__dirname, 'template/core'), '.', function(err) { ... });