好久沒玩gulp
了,最近有個項目需要用到這貨,npm install
操作之后,查看任務:
gulp -T
居然報如下錯誤:
fs.js:45
} = primordials;
^
ReferenceError: primordials is not defined
ReferenceError: primordials is not defined 說primordials
這家伙沒被定義,結果各種搜索后了解到說gulp版本和node版本不兼容,現在看下我本地的版本:
$ gulp --version
CLI version: 2.2.0
Local version: 3.9.1
$ node -v
v14.17.0
網上說是gulp 3.x
版本和node 12.x
版本不兼容,我這都14的版本了,應該是從12版本開始出現這個問題的。
解決方法
問題找到,那就更新gulp版本咯,最新的好像已經4.x
了,但是這貨我又不經常用,更新了干嘛,當然還有另一種就是降低node版本,但時代在進步,你敢要要倒退?
所以找到了另一個解決方法,使用npm shrinkwrap
鎖定依賴版本:
- 項目根目錄新建
npm-shrinkwrap.json
- npm-shrinkwrap.json內容修改如下:
{
"dependencies": {
"graceful-fs": {
"version": "4.2.2"
}
}
}
然后試着重新執行npm install
,一路暢通,最后完美解決。
上面就是ReferenceError: primordials is not defined報錯的解決方法。
參考:https://timonweb.com/javascript/how-to-fix-referenceerror-primordials-is-not-defined-error/