出现问题的前提条件:
阅读 uniapp 官网的教程,快速上手阶段使用 hbuildx 进行项目搭建时,无法成功启动 uniapp 项目。
这个问题在网上有很多解答,但是大部分都说的很不清楚。
在网上随便找了点代码复现错误:
[编译scss/sass] 15:48:25.231 Error: \\?\G:\HBuilderX\plugins\compile-node-sass\node_modules\node-sass-china\vendor\win32-x64-64\binding.node is not a valid Win32 application.
[编译scss/sass] 15:48:25.231 \\?\G:\HBuilderX\plugins\compile-node-sass\node_modules\node-sass-china\vendor\win32-x64-64\binding.node
仔细观察可以发现 其实两次出现的这个路径都是同一个,我们直接去定位这个地方,会发现是这样的:
一个名为 win32 x64 -**(后续的数字可能时72也可能是64) 的文件夹下有一个binding.node 文件。
网上有一些教程给出的处理方法是:
使用该指令:
node -p "[process.platform, process.arch, process.versions.modules].join('-')"
进行 binding.node 版本查看然后再进行文件的版本替换。
注意!! 使用这个指令去查看的 binding.node 是全局的版本,它不一定是 uniapp 所需要的版本!!如果你把这个直接覆盖掉是会影响其他项目的,因为它是全局 binding ,不是我们 uniapp 的。
根据这个指令的版本号去下载 github 上的 binding 是会报错的!
那到底要去下载什么版本的binding呢?
正确的解决方案:
去 github 上下载对应的文件夹名称版本的 binding.node 并覆盖掉该文件夹下的 binding.node 即可。
这个处理方法是正确的。
如:我目前是 win32 x64 -72 文件夹下的 binding 文件报错,那么我要去 github 上下载 win32 x64 -72 版本的 binding.node 文件进行覆盖。文章来源:https://www.toymoban.com/news/detail-485153.html
这样覆盖之后,uniapp就可以成功启动了。文章来源地址https://www.toymoban.com/news/detail-485153.html
到了这里,关于uniapp项目启动报错 binding.node is not a valid Win32 application 终极解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!