本文主要是介绍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目录下:
npm root -g
# /usr/share/node-v18.19.0-linux-x64/lib/node_modules
然后设置NODE_PATH
环境变量:
windows
系统环境变量->添加
NODE_PATH="/usr/share/node-v18.19.0-linux-x64/lib/node_modules"
Linux:
临时生效(当前会话)
执行
export NODE_PATH="/usr/share/node-v18.19.0-linux-x64/lib/node_modules"
永久生效(当前用户)
vim ~/.bashrc添加
export NODE_PATH="/usr/share/node-v18.19.0-linux-x64/lib/node_modules"执行
source ~/.bashrc
永久生效(所有用户)
vim /etc/profile添加
export NODE_PATH="/usr/share/node-v18.19.0-linux-x64/lib/node_modules"执行
source /etc/profile
这篇关于windows/linux下其他位置调用指定nodejs脚本报错Error: Cannot find module ‘esm’的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!