node.js和ncp模块 – 无法复制单个文件

我正在使用Node.js v6.3.1和ncp v2.0.0

我只能得到ncp复制一个目录的内容,而不是该目录内的单个文件。

以下是recursion地复制目录内容的代码:

var ncp = require("ncp").ncp; ncp("source/directory/", "destination/directory/", callback); 

…这里是相同的代码,但有一个文件作为源代码:

 var ncp = require("ncp").ncp; ncp("source/directory/file.txt", "destination/directory/", callback); 

从这一切我可以想到的是,NCP是专门devise复制目录recursion,而不是单个文件也许?

我曾经想过使用像这里描述的fileSystem的读 / 写streamfunction,但是为了保持一致性,我希望能够坚持使用ncp。

更新:

我发现了另一个名为node-fs-extra的软件包,它可以完成我所需要的操作,而不需要为操作添加事件处理程序,就像我在fileSystem读/写解决scheme中所做的那样。

这是正在工作的代码:

 var fsExtra = require("fs-extra"); fsExtra.copy("source/directory/file.txt", "destination/directory/file.txt", callback); 

显然这仍然是不一致的,但至less是不那么冗长。

好吧,我已经知道我做错了什么。

我试图复制一个文件到一个目录,在那里我需要复制并命名目录中的文件。

所以这是我的原始代码不起作用:

 var ncp = require("ncp"); ncp("source/directory/file.txt", "destination/directory/", callback); 

…这里是固定的代码工作,注意目标目录中包含一个文件名:

 var ncp = require("ncp"); ncp("source/directory/file.txt", "destination/directory/file.txt", callback); 

所以它看起来像ncp不会只是采取文件,但需要你指定在另一端的文件名成功复制。 我想我假设它只是将具有相同名称的文件复制到目标目录中。

我发现了另一个名为node-fs-extra的软件包,它可以完成我所需要的操作,而不需要为操作添加事件处理程序,就像我在fileSystem读/写解决scheme中所做的那样。

这是正在工作的代码:

 var fsExtra = require("fs-extra"); fsExtra.copy("source/directory/file.txt", "destination/directory/file.txt", callback); 

显然这仍然是不一致的,但至less是不那么冗长。