已安装@nut-tree/nut.js但运行时提示模块找不到的问题求助
已安装@nut-tree/nut.js但运行时提示模块找不到的问题求助
我最近在试着用nut.js做一个超简单的小应用,但怎么都跑不起来。我是从monorepo里构建了.tgz包然后安装的,还特意检查了依赖列表,确认它确实已经在项目依赖里了:
Legend: production dependency, optional only, dev only mouse-app@1.0.0 C:\Users\Mark\Documents\Code\Mouse App dependencies: @nut-tree/nut.js 4.2.0
我写了个测试脚本,但运行的时候却一直提示找不到这个模块,有没有大佬能帮我排查下问题出在哪呀?
给你几个可以试试的排查方向哈:
- 先仔细检查测试脚本里的导入语句,是不是包名写错了?比如是不是写成了
import 'nut.js'或者require('nut.js'),正确的应该是import '@nut-tree/nut.js'或者require('@nut-tree/nut.js'),包名要完全匹配才行。 - 试试清理依赖缓存后重新安装:删掉项目里的
node_modules文件夹和package-lock.json(用yarn的话就是yarn.lock),然后重新执行npm install,有时候依赖安装过程中会有缓存或者文件损坏的情况,重新装一遍可能就好了。 - 核对下你的Node.js版本和nut.js 4.2.0的兼容性,这个版本的nut.js可能对Node.js的版本有要求,比如是不是需要Node.js 16.x及以上?你可以看看项目根目录的package.json里的engines字段确认下要求。
- 如果是用TypeScript开发的,检查下tsconfig.json的配置,比如moduleResolution字段是不是设置成了
node或者nodenext,不对的模块解析策略也会导致找不到模块。 - 确认你的测试脚本所在的目录和package.json是不是在同一个层级?如果脚本在子目录里,可能需要调整导入路径,或者通过设置NODE_PATH环境变量来指定模块搜索路径。
内容来源于stack exchange




