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
相关推荐
梁萌4 小时前
linux中使用docker安装MySQL
linux·运维·docker·容器·mysql安装
huangql5204 小时前
Vite与Webpack完全指南:从零开始理解前端构建工具
前端·webpack·node.js
api_180079054604 小时前
【技术教程】Python/Node.js 调用拼多多商品详情 API 示例详解
大数据·开发语言·python·数据挖掘·node.js
搬砖的小码农_Sky4 小时前
Ubuntu Desktop Linux 文件和文件夹操作命令详解
linux·运维·ubuntu
倔强的石头1065 小时前
【Linux指南】操作系统的理解:从“内核”到“广义系统”的完整认知
linux·运维·服务器
stark张宇5 小时前
盘点Nfs 文件服务在Windows上的坑??
linux·windows·centos
我根本不会啊5 小时前
2025 11 09 作业
java·linux·服务器
liu****5 小时前
13.POSIX信号量
linux·开发语言·c++·算法·1024程序员节
NiKo_W6 小时前
Linux 进程间关系与守护进程
linux·运维·服务器·进程·守护进程·会话
pale_moonlight6 小时前
五、Hbase基于环境搭建
linux·数据库·hbase