Node.js:Node.js:cb.apply is not a function (その2)

話題の爆速CLIツール「Vite」をVue.jsの定番ツール「Vue CLI」と徹底比較!:CodeZine(コードジン)
3ページ目の リスト8 "npx degit Uninen/vite-ts-tailwind-starter#main p004-vite-template" がエラーとなったのでメモ

環境

Windows 10 21H1 (19043.1348)
C:\Users\user>node -v
v14.17.0

C:\Users\user>npm -v
6.14.13

C:\Users\user>npx -v
10.2.2
  

現象

"npx degit Uninen/vite-ts-tailwind-starter#main p004-vite-template" を実行したらエラーとなった。
C:\work\VueSample\sample>npx degit Uninen/vite-ts-tailwind-starter#main p004-vite-template
npm ERR! cb.apply is not a function

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\user\AppData\Roaming\npm-cache\_logs\2021-11-15T09_41_19_692Z-debug.log
コード[ 'degit@latest' ]で1のインストールに失敗しました
  

対応

過去記事:Node.js:cb.apply is not a function の対応ではダメである。
※ この記事の件は既に対処済み

なんかよくわからないが polyfills.js の fs.stat、fs.fstat、fs.lstat の箇所をコメント化すれば解決した、との記事を見つけた。

まず、エラーとなった際に記録されていたログ (C:\Users\user\AppData\Roaming\npm-cache\_logs\2021-11-15T09_41_19_692Z-debug.log) を開いてみる。
0 info it worked if it ends with ok
1 verbose cli [
1 verbose cli   'C:\\Program Files (x86)\\Nodist\\v-x64\\14.17.0\\node.exe',
1 verbose cli   'C:\\Program Files (x86)\\Nodist\\bin\\node_modules\\npx\\node_modules\\npm\\bin\\npm-cli.js',
1 verbose cli   'install',
1 verbose cli   'degit@latest',
1 verbose cli   '--global',
1 verbose cli   '--prefix',
1 verbose cli   'C:\\Users\\user\\AppData\\Roaming\\npm-cache\\_npx\\5336',
1 verbose cli   '--loglevel',
1 verbose cli   'error',
1 verbose cli   '--json'
1 verbose cli ]
2 info using npm@5.1.0
3 info using node@v14.17.0
4 verbose npm-session e6c10cd782d28e67
5 silly install loadCurrentTree
6 silly install readGlobalPackageData
7 http fetch GET 304 https://registry.npmjs.org/degit 876ms (from cache)
8 silly pacote tag manifest for degit@latest fetched in 1140ms
9 verbose stack TypeError: cb.apply is not a function
9 verbose stack     at C:\Program Files (x86)\Nodist\bin\node_modules\npx\node_modules\npm\node_modules\graceful-fs\polyfills.js:287:18
9 verbose stack     at FSReqCallback.oncomplete (fs.js:193:5)
10 verbose cwd C:\work\VueSample\sample
11 verbose Windows_NT 10.0.19043
12 verbose argv "C:\\Program Files (x86)\\Nodist\\v-x64\\14.17.0\\node.exe" "C:\\Program Files (x86)\\Nodist\\bin\\node_modules\\npx\\node_modules\\npm\\bin\\npm-cli.js" "install" "degit@latest" "--global" "--prefix" "C:\\Users\\user\\AppData\\Roaming\\npm-cache\\_npx\\5336" "--loglevel" "error" "--json"
13 verbose node v14.17.0
14 verbose npm  v5.1.0
15 error cb.apply is not a function
16 verbose exit [ 1, true ]
  
ログに polyfills.js のパスが書いてあった。
このファイルを開いてみると62~64行目(以下の抜粋では5~7行目)に該当が見つかったのでコメントアウト
    fs.chmodSync = chmodFixSync(fs.chmodSync)
    fs.fchmodSync = chmodFixSync(fs.fchmodSync)
    fs.lchmodSync = chmodFixSync(fs.lchmodSync)
  
  //  fs.stat = statFix(fs.stat)
  //  fs.fstat = statFix(fs.fstat)
  //  fs.lstat = statFix(fs.lstat)
  
    fs.statSync = statFixSync(fs.statSync)
    fs.fstatSync = statFixSync(fs.fstatSync)
    fs.lstatSync = statFixSync(fs.lstatSync)    
  
もう一度 "npx degit Uninen/vite-ts-tailwind-starter#main p004-vite-template" を実行してみた。
またエラー?
C:\work\VueSample>npx degit Uninen/vite-ts-tailwind-starter#main p004-vite-template
npx: 1個のパッケージを2.73秒でインストールしました。
! could not fetch remote https://github.com/Uninen/vite-ts-tailwind-starter
! could not find commit hash for main    
  

これは Git をインストールしてないから?

過去記事 Git:WindowsにGitをインストール を参考に Git for Windows をインストールしてみる。

もう一度 "npx degit Uninen/vite-ts-tailwind-starter#main p004-vite-template" を実行してみた。
現象変わらず
C:\work\VueSample>npx degit Uninen/vite-ts-tailwind-starter#main p004-vite-template
npx: 1個のパッケージを2.73秒でインストールしました。
! could not fetch remote https://github.com/Uninen/vite-ts-tailwind-starter
! could not find commit hash for main    
  
Windows再起動し、もう一度やってみる。
エラーは無くなった。
C:\work\VueSample>npx degit Uninen/vite-ts-tailwind-starter#main p004-vite-template
npx: 1個のパッケージを10.977秒でインストールしました。
> cloned Uninen/vite-ts-tailwind-starter#main to p004-vite-template  
  


Node.js, npm, npx

0 件のコメント:

その他の記事