使用HBuilder对uni-app项目云打包成app一直打包失败,
# 错误日志
HBuilder] 14:36:19.600 正在编译中...
[HBuilder] 14:37:33.088 Module build failed (from ./node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js):
[HBuilder] 14:37:33.088 Error: Missing binding /Users/a1111/myproject/scwl/hy-web-app-ui/node_modules/node-sass/vendor/darwin-x64-93/binding.node
[HBuilder] 14:37:33.120 Node Sass could not find a binding for your current environment: OS X 64-bit with Node.js 16.x
[HBuilder] 14:37:33.121 Found bindings for the following environments:
[HBuilder] 14:37:33.140 - OS X 64-bit with Node.js 13.x
[HBuilder] 14:37:33.141 This usually happens because your environment has changed since running `npm install`.
[HBuilder] 14:37:33.179 Run `npm rebuild node-sass` to download the binding for your current environment.
[HBuilder] 14:37:33.184 at /Users/a1111/myproject/scwl/hy-web-app-ui/node_modules/node-sass/lib/binding.js:15:13
[HBuilder] 14:37:33.185 at Object.<anonymous> (/Users/a1111/myproject/scwl/hy-web-app-ui/node_modules/node-sass/lib/index.js:13:35)
[HBuilder] 14:37:33.199 at Module._compile (node:internal/modules/cjs/loader:1126:14)
[HBuilder] 14:37:33.199 at Object.Module._extensions..js (node:internal/modules/cjs/loader:1180:10)
[HBuilder] 14:37:33.214 at Module.load (node:internal/modules/cjs/loader:1004:32)
[HBuilder] 14:37:33.227 at Function.Module._load (node:internal/modules/cjs/loader:839:12)
[HBuilder] 14:37:33.228 at Module.require (node:internal/modules/cjs/loader:1028:19)
[HBuilder] 14:37:33.244 at require (node:internal/modules/cjs/helpers:102:18)
[HBuilder] 14:37:33.244 at getDefaultSassImplementation (/Users/a1111/myproject/scwl/hy-web-app-ui/node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/getDefaultSassImplementation.js:24:10)
[HBuilder] 14:37:33.261 at getSassImplementation (/Users/a1111/myproject/scwl/hy-web-app-ui/node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/getSassImplementation.js:19:72)
[HBuilder] 14:37:33.278 at Object.loader (/Users/a1111/myproject/scwl/hy-web-app-ui/node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/index.js:42:61)
[HBuilder] 14:37:33.294 Error: getaddrinfo ENOTFOUND 96f0e031-f37a-48ef-84c7-2023f6360c0a.bspapp.com
[HBuilder] 14:37:33.294 at GetAddrInfoReqWrap.onlookup [as oncomplete] (node:dns:109:26) {
[HBuilder] 14:37:33.310 errno: -3008,
[HBuilder] 14:37:33.360 }
[HBuilder] 14:37:33.377 项目 'hy-web-app-ui' 编译成功。
[HBuilder] 14:37:33.395 ERROR Build failed with errors.
当前项目一直使用的node版本为14.14.0
一直以为是node-saas和sass-loader版本不对,
npm uninstall node-sass sass-loader
npm install node-sass@4.13.1 sass-loader@7.3.1
npm rebuild node-sass
经过各种变换版本,重装node,修改mac电脑上终端配置一直都不行。
直到仔细检查错误日志,node js 16.x
发现是打包的node版本与项目版本不一致
经过查询资料发现HBuild有个内置的node
进入软件内部,查看node版本
a1111@MacBook-Pro ~ % cd /Applications/HBuilderX.app/Contents/HBuilderX/plugins/node
a1111@MacBook-Pro node % ls
node package.json
a1111@MacBook-Pro node % node --version
v13.14.0
# 还是不对,仔细想想,想起来这个命令的node是环境变量里面找的,不是当前文件夹下面的,于是
a1111@MacBook-Pro node % ./node --version
v16.17.0
# 找到问题,先修改当前文件夹下面的版本
a1111@MacBook-Pro node % mv ./node node-v16
a1111@MacBook-Pro node % whereis node
node: /Users/a1111/.nvm/versions/node/v13.14.0/bin/node /Users/a1111/.nvm/versions/node/v13.14.0/share/man/man1/node.1
a1111@MacBook-Pro node % ln -s /Users/a1111/.nvm/versions/node/v13.14.0/bin/node /Applications/HBuilderX.app/Contents/HBuilderX/plugins/node/node
a1111@MacBook-Pro node % ls
node node-v16 package.json
a1111@MacBook-Pro node % ./node --version
v13.14.0
再次进行打包
等待中