2016-08-30 39 views
1

當我運行下面的代碼時,空白文件會被創建爲正確的名稱。我顯然不想要一個空白文件。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 但正如我前面提到的文件是空白。任何想法我在這裏做錯了嗎?

回答

1

我修改了您的代碼並在我的電腦上進行了檢查。

所以導致:http://joxi.ru/ZrJEEJh1KXw1Ajhere

結帳驗證碼:

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

這是文件權限問題。謝謝@ num8er的幫助 –

0

您的process.exit調用在完成之前會被幹擾/中止。不需要調用process.exit。一切完成後它將退出。

+0

是啊,我被明確爲是永遠只跑了作爲一個獨立的模塊 –