fs-extra 复制文件输出空白文件

fs-extra copy file outputs blank file

当我 运行 以下代码时,会创建一个具有正确名称的空白文件。我显然不想要一个空白文件。

我知道路径是正确的,因为当我故意不正确时它失败了(很明显)

const path = require('path');
const fse = require('fs-extra');
const OUTPUT_PATH   = 'js/libs/';
const _NODE_MODULES   = 'node_modules/';
const filePath        = `${_NODE_MODULES}tooltipster/dist/js/tooltipster.bundle.min.js`;

fse.copy(path.join(__dirname, filePath), path.join(__dirname, `${OUTPUT_PATH}/something.js`), err => {
  if (err) {
    console.log(err);
    process.exit(1)
  }
  console.log('Copy complete');
  process.exit(0);
})

这个的输出是 Copy Complete 但是正如我之前所说,该文件是空白的。知道我在这里做错了什么吗?

您对 process.exit interfered/aborted 的调用尚未完成。不需要调用 process.exit。当一切都完成后它会退出。

我已经修改了您的代码并在我的电脑上进行了检查。

所以结果:http://joxi.ru/ZrJEEJh1KXw1Aj

检查此代码:

const path = require('path');
const fs = require('fs-extra');

let sourceFile = path.join(__dirname, 'node_modules', 'tooltipster/dist/js/tooltipster.bundle.min.js');
let destinationFile = path.join(__dirname, 'js/libs', 'something.js');

fs.copy(sourceFile, destinationFile, err => {
  if (err) {
    return console.error(err);
  }

  console.log('Copy complete');
});

如果再次失败,请确保代码没有问题。

检查您的文件系统,可能存在一些打开文件限制、权限问题或没有免费 space。

我也猜到源文​​件是空的,所以:

cat node_modules/tooltipster/dist/js/tooltipster.bundle.min.js