網(wǎng)站首頁 編程語言 正文
1.項(xiàng)目背景
meteor框架項(xiàng)目,用npm安裝的usb包。
因?yàn)橐玫絬sb的功能。
這里涉及一些硬件的連接,所以有node-gyp的過程。
2.報(bào)錯(cuò)原因
我用了npm install usb
命令來安裝usb包,所以錯(cuò)了。
應(yīng)該用meteor npm install usb
命令來安裝usb包才對。
**區(qū)別:**應(yīng)該是安裝包的時(shí)候要結(jié)合meteor內(nèi)部做了一些處理。所以要用meteor npm install usb
也可以簡寫成meteor npm i usb
3.報(bào)錯(cuò)內(nèi)容
node-gyp(node-generate your project)我的報(bào)錯(cuò)如下
Error: The module ‘\?\D:\pratdemo\meteor_demo\meteor_upload_vue\node_modules\usb\build\Release\usb_bindings.node’
W20200401-09:34:06.239(8)? (STDERR) was compiled against a different Node.js version using
W20200401-09:34:06.241(8)? (STDERR) NODE_MODULE_VERSION 64. This version of Node.js requires
W20200401-09:34:06.241(8)? (STDERR) NODE_MODULE_VERSION 57. Please try re-compiling or re-installing
W20200401-09:34:06.242(8)? (STDERR) the module (for instance, usingnpm rebuild
ornpm install
).
W20200401-09:34:06.244(8)? (STDERR) at Object.Module._extensions…node (module.js:682:18)
W20200401-09:34:06.245(8)? (STDERR) at Module.load (module.js:566:32)
W20200401-09:34:06.245(8)? (STDERR) at tryModuleLoad (module.js:506:12)
W20200401-09:34:06.246(8)? (STDERR) at Function.Module._load (module.js:498:3)
W20200401-09:34:06.247(8)? (STDERR) at Module.require (module.js:597:17)
W20200401-09:34:06.248(8)? (STDERR) at require (internal/module.js:11:18)
W20200401-09:34:06.249(8)? (STDERR) at bindings (D:\pratdemo\meteor_demo\meteor_upload_vue\node_modules\bindings\bindings.js:112:48)
W20200401-09:34:06.251(8)? (STDERR) at Object. (D:\pratdemo\meteor_demo\meteor_upload_vue\node_modules\usb\usb.js:1:57)
W20200401-09:34:06.252(8)? (STDERR) at Module._compile (module.js:653:30)
W20200401-09:34:06.259(8)? (STDERR) at Object.Module._extensions…js (module.js:664:10)
W20200401-09:34:06.261(8)? (STDERR) at Module.load (module.js:566:32)
W20200401-09:34:06.261(8)? (STDERR) at tryModuleLoad (module.js:506:12)
W20200401-09:34:06.262(8)? (STDERR) at Function.Module._load (module.js:498:3)
W20200401-09:34:06.263(8)? (STDERR) at Module.require (module.js:597:17)
W20200401-09:34:06.265(8)? (STDERR) at require (internal/module.js:11:18)
W20200401-09:34:06.269(8)? (STDERR) at npmRequire (D:\pratdemo\meteor_demo\meteor_upload_vue.meteor\local\build\programs\server\npm-require.js:133:10)
從報(bào)錯(cuò)的加粗內(nèi)容中可以看到,該usb包在當(dāng)前環(huán)境要求的是NODE_MODULE_VERSION 57這版本的包,而我安裝的卻是NODE_MODULE_VERSION 64所以錯(cuò)了。
4.解決辦法
1.首先通過npm uninstall usb
卸載usb包,或者你也可以在node_modules里面找到usb文件夾整個(gè)刪除。
2.然后通過meteor npm install usb
安裝usb包,就正常了。這是官方推薦的安裝方式。
溫馨提示:該npm的usb包一定要通過meteor的server端引入和使用,然后通過前端觸發(fā)server端的方法就好,前端觸發(fā)server端的方法用到meteor的包cfs:http-methods
可以去這里搜索https://atmospherejs.com/?q=cfs%3Ahttp-methods。
npm的usb包在前端client直接引入會報(bào)錯(cuò)的。除非你前端用nwjs引入也可能行。
5.總結(jié)
1.都怪自己自以為是:自以為npm i usb
和meteor npm i usb
安裝方式會是一樣的效果。好像運(yùn)行的時(shí)候,也能安裝上usb包啊。但是會有微小的差別
如果該npm包只是前端的功能的,例如vue包,其實(shí)這兩個(gè)安裝方式應(yīng)該都可以。
但如果涉及到后臺或者硬件方面,就只能用meteor npm i usb
來安裝了。因?yàn)閡sb包涉及到了硬件方面功能。(電腦usb接口)
2.npm的包,盡量在后臺server端引入和使用。var usb = require('usb')
3.npm的包,涉及到硬件方面的話,不要在前端引入,會報(bào)dll找不到的錯(cuò)誤,如Error: A dynamic link library (DLL) initialization routine failed.
bindings.node報(bào)錯(cuò)
好吧,關(guān)于meteor使用的心得,希望大家多多交流。
如有不懂,歡迎評論!
原文鏈接:https://blog.csdn.net/yuan_618859/article/details/105238763
相關(guān)推薦
- 2022-07-02 Python使用struct庫的用法小結(jié)_python
- 2022-03-14 Prefix must be in canonical form
- 2022-06-16 C#中執(zhí)行SQL的幾種方法講解_C#教程
- 2022-12-15 Android?NotificationListenerService?通知服務(wù)原理解析_Andro
- 2022-05-24 Flutter滾動(dòng)組件之SingleChildScrollView使用詳解_Android
- 2022-02-04 sql語句:and與or的優(yōu)先級
- 2023-03-29 golang?channel讀取數(shù)據(jù)的幾種情況_Golang
- 2024-01-29 SpringBoot-yml文件的配置與讀取
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支