spawn npm ENOENT


今天在新clone的一個項目里,打包報如下錯:

 

 

反復重新安裝依賴,發現無濟於事,可同事的機器運行不報錯

檢查代碼發現:

const {spawn} = require('promisify-child-process');

Node.sj spawn函數可以用於調用系統上的命令,如在 Linux, macOS 等系統上

例如:

spawn('rm', ['-rf', deployDir])

spawn('mkdir', ['dist'])

 

...

同樣的語句在 Windows 上執行則會報錯

因為在 Windows 上,當我們執行  npm 時,我們實際執行的是  npm.cmd 批處理

解決方案:顯式調用

spawn('cmd',['/c', 'npm'],['run', `build:${env}`]);

或者 shell: process.platform === 'win32'

spawn('git', args, {

   cwd: deployDir,

 shellprocess.platform === 'win32'

});

第三方庫:cross-spawn

或者 

const spawn = require('hexo-util').spawn 
 
版本:(package.json)
"hexo-util": "^0.6.3"
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM