我正在尝试导入一个全局安装的pkg,该pkg位于/some/path。我在~/..bash_profile中设置了NODE_PATH。我可以做‘回声$NODE_PATH’和看到我的路径在一个终端。但是节点11.10.1仍然没有找到pkg。根据我在这里看到的,应该从这个env初始化在一起 require.paths。但是,如果我记录require.paths,它不会被设置,console.log(require.paths)是未定义的。我怎么才能解决这个问题?
console.log(process.env.NODE_PATH)
var i = require('promised-io')精确错误信息:未知错误:找不到模块“答应-io”
发布于 2022-05-07 13:15:00
节点v16.14.0与Ubuntu21.10中安装的节点有相同的问题。环境变量$NODE_PATH似乎被忽略了,node没有搜索npm (/usr/local/lib/node_modules)使用的全局安装路径。对我来说,我找到了两个解决办法:
module.paths.push('/usr/local/lib/node_modules');添加到*.js中或者,如果您不想修补其他人的工具,但仍然希望提供全局安装的数据包,例如,为一个构建服务器的多个用户提供包,您可以使用一个符号链接来修复这个问题。查看Node.js v16.14.0文档-从全局文件夹加载显示,node仍然在$PREFIX/lib/node中搜索,而在$PREFIX/lib/node_modules中不再搜索。因此,我们可以通过以下方法来解决npm和node全局默认路径之间的偏差。
sudo ln -sf /usr/local/lib/node_modules /usr/local/lib/nodehttps://stackoverflow.com/questions/69920161
复制相似问题