fs-extra copy file输出空白文件

时间:2016-08-30 20:46:02

标签: node.js fs fs-extra

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

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

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 但是如前所述,该文件是空白的。知道我在这里做错了吗?

2 个答案:

答案 0 :(得分:1)

我已修改您的代码并在我的电脑上查看。

结果:http://joxi.ru/ZrJEEJh1KXw1Aj here

查看此代码:

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');
});

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

检查您的文件系统可能存在一些打开的文件限制,权限问题或没有可用空间。

我也可以猜测源文件是空的,所以:

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

答案 1 :(得分:0)

您对process.exit的调用在完成之前受到干扰/中止。不需要调用process.exit。一切都完成后它会退出。