安装Gulp时遭遇npm报错:internalBinding is not defined 求助
解决npm安装时
internalBinding is not defined错误 嘿,我帮你分析了这个在安装Gulp过程中遇到的npm错误,核心问题是版本不兼容:你当前使用的npm@3.6.0是比较老旧的版本,而Node.js v11.12.0已经调整了内部API,旧版npm依赖的internalBinding接口在这个Node版本里已经被移除了,所以才会抛出这个引用错误。
给你两个可行的解决方案,选一个适合你的:
方案一:升级npm到适配Node.js v11的版本
既然已经用了Node.js v11,更推荐升级npm到兼容的版本,不过直接用旧npm升级可能失败,建议按以下步骤操作:
- 先卸载当前有问题的全局npm:
sudo npm uninstall -g npm - 重新安装适配Node.js v11的npm(最简单的方式是重新安装Node.js v11,它会自带对应的npm@6.x版本)
- 验证版本是否正常:
npm -v - 最后安装Gulp(注意现在Gulp需要全局装cli,本地装核心包):
npm install -g gulp-cli npm install gulp --save-dev
方案二:降级Node.js到兼容npm@3的版本
如果你有特殊需求必须保留npm@3,可以把Node.js降级到v6或v8版本(这些版本和npm@3.x兼容性更好),推荐用nvm(Node版本管理器)来操作:
- 安装nvm后,执行以下命令安装Node.js v8:
nvm install 8 - 切换到这个版本:
nvm use 8 - 再尝试安装Gulp:
npm install -g gulp
错误日志详情
0 info 若结尾为ok则表示执行成功 1 verbose cli [ '/usr/local/bin/node', '/usr/local/bin/npm', 'install', '-g', 'npm' ] 2 info 使用 npm@3.6.0 3 info 使用 node@v11.12.0 4 verbose stack ReferenceError: internalBinding is not defined 4 verbose stack 在 evalmachine.<anonymous>:25:1 4 verbose stack 在 Object.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/cmd-shim/node_modules/graceful-fs/fs.js:11:1) 4 verbose stack 在 Module._compile (internal/modules/cjs/loader.js:799:30) 4 verbose stack 在 Object.Module._extensions..js (internal/modules/cjs/loader.js:810:10) 4 verbose stack 在 Module.load (internal/modules/cjs/loader.js:666:32) 4 verbose stack 在 tryModuleLoad (internal/modules/cjs/loader.js:606:12) 4 verbose stack 在 Function.Module._load (internal/modules/cjs/loader.js:598:3) 4 verbose stack 在 Module.require (internal/modules/cjs/loader.js:705:19) 4 verbose stack 在 require (internal/modules/cjs/helpers.js:14:16) 4 verbose stack 在 Object.<anonymous> (/usr/local/lib/node_modules/npm/node_modules/cmd-shim/node_modules/graceful-fs/graceful-fs.js:3:27) 5 verbose cwd /home/michael 6 error Linux 4.15.0-46-generic 7 error argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" "-g" "npm" 8 error node v11.12.0 9 error npm v3.6.0 10 error internalBinding is not defined 11 error 如需帮助,可前往npm官方仓库提交问题 12 verbose exit [ 1, true ]
内容的提问来源于stack exchange,提问作者Michael Daineka
相关产品推荐
相关产品推荐

