node.js - npm 的非确定性行为
问题描述
运行后npm install
,我注意到有时会package-lock.json
发生变化。
本节:
"dependencies": {
"websocket": {
"version": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2",
"from": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2",
"requires": {
"debug": "^2.2.0",
"nan": "^2.3.3",
"typedarray-to-buffer": "^3.1.2",
"yaeti": "^0.0.6"
}
}
}
}
对此的更改:
"dependencies": {
"websocket": {
"version": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2",
"from": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2",
"requires": {
"debug": "^2.2.0",
"nan": "^2.3.3"
}
}
}
}
发生这种情况时,我会收到运行时错误:
module.js:538
throw err;
^
Error: Cannot find module 'typedarray-to-buffer'
at Function.Module._resolveFilename (module.js:536:15)
at Function.Module._load (module.js:466:25)
at Module.require (module.js:579:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (C:\Users\...\node_modules\web3-providers-ws\node_modules\websocket\lib\W3CWebSocket.js:18:16)
at Module._compile (module.js:635:30)
at Object.Module._extensions..js (module.js:646:10)
at Module.load (module.js:554:32)
at tryModuleLoad (module.js:497:12)
at Function.Module._load (module.js:489:3)
经过一些调试,这个错误出现require("web3")
在我的代码中。
这是我package.json
文件中的相关部分:
"devDependencies": {
"chai": "^4.1.2",
"chai-as-promised": "^7.0.0",
"bignumber.js": "^7.0.0",
"decimal.js": "^10.0.0",
"web3": "1.0.0-beta.34",
"ethereumjs-testrpc-sc": "6.1.2",
"ganache-cli": "6.1.0",
"solidity-coverage": "0.4.14",
"truffle": "4.1.3"
}
我该如何解决这个问题,为什么有时会有npm
不同的工作方式?
解决方案
推荐阅读
- docker - 使用 github-action 和 docker-hub 生成乳胶简历参考书目
- android - Android FileProvider 无法使用意图查看图像
- pandas - 将来自多个 DataFrames 的数据组合成单个图,无需组合 DataFrames
- javascript - 在按钮上单击 Javascript 中“this”上的执行方法或函数
- or-tools - 有容量的车辆路径问题 - Google OR 工具
- android - 覆盖 Chromeos 上的 enter 和 space 键
- cookies - Chrome 阻止 3rd-party cookie 后我应该怎么做?
- javascript - 在 react-chartjs-2 中初始绘制后动画不起作用
- docker - Blazor Webassembly 应用程序设置和环境变量未在暂存环境中加载
- python - 具有 MFA 身份验证的 Pyodbc 无需每次都登录