SpongeGirl
SpongeGirl
  • 发布:2021-06-30 10:06
  • 更新:2021-11-23 22:39
  • 阅读:1089

hbuilderx 3.1.18.20210609 识别node版本错误

分类:HBuilderX

我在cmd中运行项目npm run dev:h5是没有报错的,但在编辑器里面直接运行到真机时就会报一些node版本的错误,如下图:
报错信息文字:
Module build failed (from ./node_modules/mini-css-extract-plugin/dist/loader.js):
09:51:11.681 ModuleBuildError: Module build failed (from ./node_modules/sass-loader/dist/cjs.js):
09:51:11.681 Error: Missing binding D:\Codes\uniapp\node_modules\node-sass\vendor\win32-x64-83\binding.node
09:51:11.690 Node Sass could not find a binding for your current environment: Windows 64-bit with Node.js 14.x
09:51:11.690 Found bindings for the following environments:
09:51:11.700 - Windows 64-bit with Node.js 8.x

09:51:11.701 This usually happens because your environment has changed since running npm install.
09:51:11.710 Run npm rebuild node-sass to download the binding for your current environment.
09:51:11.710 at module.exports (D:\Codes\uniapp\node_modules\node-sass\lib\binding.js:15:13)
09:51:11.720 at Object.<anonymous> (D:\Codes\uniapp\node_modules\node-sass\lib\index.js:14:35)
09:51:11.720 at Module._compile (internal/modules/cjs/loader.js:1063:30)
09:51:11.730 at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
09:51:11.730 at Module.load (internal/modules/cjs/loader.js:928:32)
09:51:11.739 at Function.Module._load (internal/modules/cjs/loader.js:769:14)
09:51:11.739 at Module.require (internal/modules/cjs/loader.js:952:19)
09:51:11.748 at require (internal/modules/cjs/helpers.js:88:18)
09:51:11.749 at getDefaultSassImplementation (D:\Codes\uniapp\node_modules\sass-loader\dist\getDefaultSassImplementation.js:24:10)
09:51:11.757 at getSassImplementation (D:\Codes\uniapp\node_modules\sass-loader\dist\getSassImplementation.js:19:72)
09:51:11.758 at Object.loader (D:\Codes\uniapp\node_modules\sass-loader\dist\index.js:40:61)
09:51:11.767 at D:\Codes\uniapp\node_modules\webpack\lib\NormalModule.js:301:20
09:51:11.768 at D:\Codes\uniapp\node_modules\loader-runner\lib\LoaderRunner.js:367:11
09:51:11.776 at D:\Codes\uniapp\node_modules\loader-runner\lib\LoaderRunner.js:233:18
09:51:11.777 at runSyncOrAsync (D:\Codes\uniapp\node_modules\loader-runner\lib\LoaderRunner.js:143:3)
09:51:11.786 at iterateNormalLoaders (D:\Codes\uniapp\node_modules\loader-runner\lib\LoaderRunner.js:232:2)
09:51:11.787 at iterateNormalLoaders (D:\Codes\uniapp\node_modules\loader-runner\lib\LoaderRunner.js:221:10)
09:51:11.797 at D:\Codes\uniapp\node_modules\loader-runner\lib\LoaderRunner.js:236:3
09:51:11.797 at Object.context.callback (D:\Codes\uniapp\node_modules\loader-runner\lib\LoaderRunner.js:111:13)
09:51:11.806 at Object.module.exports (D:\Codes\uniapp\node_modules\@dcloudio\vue-cli-plugin-uni\packages\webpack-preprocess-loader\index.js:60:8)
09:51:11.816 ERROR Build failed with errors.
版本明明是8.9,但是识别成14.15

2021-06-30 10:06 负责人:无 分享
已邀请:
chenli

chenli

是sass-loader版本过高问题,可尝试指定sass-loader@4.x固定一个版本试试。

  • SpongeGirl (作者)

    但是我另外一台电脑sass-loader版本一样的,那台没事,这台不能在自带的控制台跑,只能在cmd中跑。

    2021-07-02 16:51

SpongeGirl

SpongeGirl (作者)

已经解决。
解决过程:
1.发现报错的地方: Error: Missing binding D:\Codes\uniapp\node_modules\node-sass\vendor\win32-x64-83\binding.node,这里的目录我是 Error: Missing binding D:\Codes\uniapp\node_modules\node-sass\vendor\win32-x64-57\binding.node,发现不一样;

  1. 将57改为83,然后去https://github.com/sass/node-sass/releases/tag/v4.14.0下载了win32-x64-83的binding.node,放在win32-x64-83目录下;
  2. 重新npm rebuild node-sass,就可以成功运行了。

(ps:问题解决了,但是npm rebuild node-sass的时候还是会生成新的win32-x64-57/binding.node,奇怪了。。)

1***@qq.com

1***@qq.com

我的解决方法按照报错的目录去https://github.com/sass/node-sass/releases下载对应报错的包,然后根据报错的路径新建对应路径把下载下来的包扔进新建目录中

1***@qq.com

1***@qq.com

新的解决方法:
node版本: v12.18.2
node-sass版本: ^5.0.0
sass-loader版本:^10.2.0

该问题目前已经被锁定, 无法添加新回复