首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >即使设置了NODE_PATH,也不能在Node中导入全局包?

即使设置了NODE_PATH,也不能在Node中导入全局包?
EN

Stack Overflow用户
提问于 2021-11-10 21:00:45
回答 1查看 393关注 0票数 1

我正在尝试导入一个全局安装的pkg,该pkg位于/some/path。我在~/..bash_profile中设置了NODE_PATH。我可以做‘回声$NODE_PATH’和看到我的路径在一个终端。但是节点11.10.1仍然没有找到pkg。根据我在这里看到的,应该从这个env初始化在一起 require.paths。但是,如果我记录require.paths,它不会被设置,console.log(require.paths)是未定义的。我怎么才能解决这个问题?

代码语言:javascript
复制
console.log(process.env.NODE_PATH)

var i = require('promised-io')

精确错误信息:未知错误:找不到模块“答应-io”

EN

回答 1

Stack Overflow用户

发布于 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中不再搜索。因此,我们可以通过以下方法来解决npmnode全局默认路径之间的偏差。

  • sudo ln -sf /usr/local/lib/node_modules /usr/local/lib/node
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69920161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档