在NodeJS应用程序中设置NODE_PATH
我们有一个节点项目,它不需要我们自己的相对path的子模块,而是需要将NODE_PATH
环境variables设置为lib
来查找所有子模块。
我想在程序源代码中处理这个标准的情况,但现在看起来是不可能的。
我发现几个解决scheme都不能按预期工作。
module.paths.push("./lib");
在另一个stackoverflow文章中被build议,但是这会导致在较新的节点版本中的错误消息,并NODE_PATH
开发人员使用NODE_PATH
。
相反,我试图做我的程序的第一行以下。
process.env['NODE_PATH']="./lib";
这不会导致错误消息,但它也不起作用。 我认为这个variables是在应用程序启动时读取的,而不是在稍后重新读取时才读取的。
你可以从源代码中find所有的信息: module.js
... NODE_PATH
错误仅在通过require.paths
访问时require.paths
。
search_nodeModulePaths
函数:模块实例具有通用的Array对象paths
,其中包含所有查找path。
module.paths.unshift('./foo-baz'); var x = require('some-lib-name'); console.log(x);
所以现在,如果你在./foo-baz/some-lib-name/
下有必要的模块,它会被正确地拾取。
什么节点版本和你有什么系统?
- 如何在nodejs中使用foreach来执行Mongodb操作
- 使用Redis和Socket.io进行用户authentication
- 如何在输出lambda函数url中replace'latest'? 我怎么能做我自己的资源?
- 如何将子目录path传递给GunDB S3存储驱动程序,以便可以使用非Gun数据共享相同的S3存储桶?
- dust.js是随机的用户上传模板安全地执行服务器端?
- 用自定义的UID设置mongo的_id
- 快速使用AJAX(请求后更改variables)
- 节点posix setrlimit崩溃,EINVAL – 无效的参数
- 在expression式/ nodejs中附加一个响应stream