1

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

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

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

4

2 回答 2

1

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

所以结果: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');
});

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

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

我也可以猜到源文件是空的,所以这样做:

cat node_modules/tooltipster/dist/js/tooltipster.bundle.min.js
于 2016-08-31T00:51:57.913 回答
0

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

于 2016-08-31T00:32:55.200 回答