windows/linux下其他位置调用指定nodejs脚本报错Error: Cannot find module ‘esm’

问题:

有一个nodejs脚本名为html2word,同目录下还有它对应的package.json,正常在html2word所在目录下执行脚本没问题,但是在其他目录执行时报错:Error: Cannot find module 'esm'

原因:

在其他位置执行node脚本时找不到所依赖的模块,默认会在当前目录找,在其他位置当然没有node_modules了,只有脚本所在目录才有。

解决:

设置NODE_PATH环境变量,Node.js在搜索模块时会包含全局node_modules的路径,但是这个路径需要手动配置。

使用如下命令获取全局位置,默认在node安装目录下的lib目录下:

bash 复制代码
npm root -g
# /usr/share/node-v18.19.0-linux-x64/lib/node_modules

然后设置NODE_PATH环境变量:

windows

系统环境变量->添加

bash 复制代码
NODE_PATH="/usr/share/node-v18.19.0-linux-x64/lib/node_modules"

Linux:

临时生效(当前会话)

bash 复制代码
执行
export NODE_PATH="/usr/share/node-v18.19.0-linux-x64/lib/node_modules"

永久生效(当前用户)

bash 复制代码
vim ~/.bashrc

添加
export NODE_PATH="/usr/share/node-v18.19.0-linux-x64/lib/node_modules"

执行
source ~/.bashrc

永久生效(所有用户)

bash 复制代码
vim /etc/profile

添加
export NODE_PATH="/usr/share/node-v18.19.0-linux-x64/lib/node_modules"

执行
source /etc/profile
相关推荐
IMPYLH14 分钟前
Linux 的 wc 命令
linux·运维·服务器·前端·bash
zxy64449247325 分钟前
Centos7.9编译安装PHP7.4
linux·运维·服务器
无限进步_28 分钟前
【Linux】从冯诺依曼到操作系统:理解计算机运行的基本脉络
linux·运维·服务器
happybasic30 分钟前
Python库升级标准流程~
linux·前端·python
Rabbit_QL1 小时前
【ln -s】Linux 软链接在大模型部署中的应用
linux·运维·服务器
坤昱1 小时前
cfs调度类深入解刨——核心结构细节分析
linux·cfs调度·eevdf调度·linux调度·linux技术
枳实-叶1 小时前
【Linux驱动开发】第12天:Linux设备树核心:树形结构+节点+属性 完整全解
linux·运维·驱动开发
Yeats_Liao2 小时前
物联网接入层技术剖析(三):epoll在JVM中的映射
java·linux·jvm·人工智能·物联网
小贾要学习2 小时前
【Linux】基于自定义TCP协议的日期计算器
linux·网络·c++·网络协议·tcp/ip
2501_920047032 小时前
iptables防火墙
linux·运维·网络安全