在安装npm依赖的时候碰到了ReferenceError: primordials is not defined的问题, 找了半天没有详细的解决方案, 以至于花了几个小时解决, 特记录下, 以免其他同学遇到这个问题花费太多时间
首先, 搜索发现是安装gulp版本与node版本不兼容的问题, 我的项目gulp版本是3.9.1, 本地node版本是12.4.0
stackoverflow给出的方法是回退node版本或升级gulp版本:
https://stackoverflow.com/q/55921442/6304805
个人决定回退node版本, 但如果每次遇到版本不兼容问题都修改node版本会很麻烦, 还好有开源的node版本切换工具供我们使用,:
mac/linux版: nvm
windows版: nvm-windows
我决定用nvm-windows管理node版本, 后面的步骤会比较多而且麻烦, 如果你不想使用版本管理器的话, 想快速让项目跑起来, 可以去找11.15.0版本的node下载覆盖当前版本, 后面的就不用看了
根据文档, 先卸载node, 然后删除(e.g. "C:\Users<user>\AppData\Roaming\npm") 路径下的npm, 然后下载nvm-windows, 选安装版nvm-setup.zip下载, 然后安装, 调用nvm命令 会报错 "ERROR open \settings.txt in windows 7"的错误, 参考这个解决方法, cmd里输入setx /m NVM_HOME %APPDATA%\nvm , 然后重新打开个窗口即可
接着安装你想安装的node版本
这里装这两个版本, nvm install 12.4.0, nvm install 11.15.0, 如果网速很慢的话可以使用代理, nvm proxy [url], 如果你有ss软件的话, 把url替换为你的本地ss地址端口, 例如nvm proxy 127.0.0.1:1080, 然后下载就很快了,
下载完后 nvm list 查看已安装的版本, 你会看到刚才安装的两个node版本, 之后使用nvm use 11.15.0将本地node切换到这个11.15.0的版本, 再重新安装全局包(每个node版本下的全局包都要重新安装), 这时再去重新install下自己的项目, 就不会出现primordials is not defined报错了