尝试构建时升级节点版本会引发 node-sass 错误
Upgrading node version throws node-sass error when trying to build
我目前正在 运行 在本地安装 Node v10.19.0 / Nextjs8 项目。我想将 Next 版本进一步升级到 11。我首先将节点本身的版本升级到 12.14.0(也许 12.20.1 更好?)我得到 2 个错误:
> Location: "/home/roma/project/.babelrc"
[ error ] ./styles/main.scss
Error: Missing binding /home/roma/project/node_modules/node-sass/vendor/linux-x64-72/binding.node
Node Sass could not find a binding for your current environment: Linux 64-bit with Node.js 12.x
Found bindings for the following environments:
- Linux 64-bit with Node.js 10.x
This usually happens because your environment has changed since running `npm install`.
Run `npm rebuild node-sass` to download the binding for your current environment.
Error: Cannot find module '/home/roma/project/.next/build-manifest.json'
Require stack:
- /home/roma/project/node_modules/next-server/dist/server/load-components.js
- /home/roma/project/node_modules/next-server/dist/server/next-server.js
- /home/roma/project/node_modules/next/dist/server/next-dev-server.js
- /home/roma/project/node_modules/next/dist/server/next.js
- /home/roma/project/server/server.ts
我知道我需要 运行 npm rebuild node-sass 命令。
- 如果我需要恢复到旧版本的节点,会不会出现问题?
- 如果确实出现此类问题,您是否需要执行所有相同的步骤?
目前,我还没有输入这个命令,因为随时可能需要return到旧版本并快速做一些工作来解决问题,所以我想澄清这两个问题。
感谢您的帮助,祝您有愉快的一天。
如您所见,发生这种情况是因为自 运行ning npm install 以来您的环境发生了变化。只需 运行 npm rebuild node-sass
为您当前的环境构建绑定就可以了。
请注意,如果出于任何原因您需要切换回另一个 Node 版本,则需要重新构建。
我用那个命令太多次了,几乎每隔一周一次。
根据我的经验和研究,没有太多办法可以防止这种情况发生;这是 node-sass 和 node 版本的兼容性问题。
如果重建命令挂起(我从未发生过但它可能会发生),您可以:
在重建命令末尾添加 --force
标志 OR
删除node_packages
文件夹并重新运行安装脚本
我从来没有做过这些,但我听说有些人做过。
网站上似乎有更多类似问题的信息,例如:
Issue using node-sass after updating NodeJS
希望这对您有所帮助。无法添加评论,所以尽了我最大的努力来提供完整的答案。
我目前正在 运行 在本地安装 Node v10.19.0 / Nextjs8 项目。我想将 Next 版本进一步升级到 11。我首先将节点本身的版本升级到 12.14.0(也许 12.20.1 更好?)我得到 2 个错误:
> Location: "/home/roma/project/.babelrc"
[ error ] ./styles/main.scss
Error: Missing binding /home/roma/project/node_modules/node-sass/vendor/linux-x64-72/binding.node
Node Sass could not find a binding for your current environment: Linux 64-bit with Node.js 12.x
Found bindings for the following environments:
- Linux 64-bit with Node.js 10.x
This usually happens because your environment has changed since running `npm install`.
Run `npm rebuild node-sass` to download the binding for your current environment.
Error: Cannot find module '/home/roma/project/.next/build-manifest.json'
Require stack:
- /home/roma/project/node_modules/next-server/dist/server/load-components.js
- /home/roma/project/node_modules/next-server/dist/server/next-server.js
- /home/roma/project/node_modules/next/dist/server/next-dev-server.js
- /home/roma/project/node_modules/next/dist/server/next.js
- /home/roma/project/server/server.ts
我知道我需要 运行 npm rebuild node-sass 命令。
- 如果我需要恢复到旧版本的节点,会不会出现问题?
- 如果确实出现此类问题,您是否需要执行所有相同的步骤?
目前,我还没有输入这个命令,因为随时可能需要return到旧版本并快速做一些工作来解决问题,所以我想澄清这两个问题。
感谢您的帮助,祝您有愉快的一天。
如您所见,发生这种情况是因为自 运行ning npm install 以来您的环境发生了变化。只需 运行 npm rebuild node-sass
为您当前的环境构建绑定就可以了。
请注意,如果出于任何原因您需要切换回另一个 Node 版本,则需要重新构建。
我用那个命令太多次了,几乎每隔一周一次。 根据我的经验和研究,没有太多办法可以防止这种情况发生;这是 node-sass 和 node 版本的兼容性问题。
如果重建命令挂起(我从未发生过但它可能会发生),您可以:
在重建命令末尾添加
--force
标志 OR删除
node_packages
文件夹并重新运行安装脚本
我从来没有做过这些,但我听说有些人做过。
网站上似乎有更多类似问题的信息,例如: Issue using node-sass after updating NodeJS
希望这对您有所帮助。无法添加评论,所以尽了我最大的努力来提供完整的答案。