CNode

mac osx10.8 npm -g 安装的包用sudo执行后就出现cannot find module

Jjridea发布于13 年前最后回复13 年前11 回复6104 浏览0 收藏

mac osx 10.8的系统 用npm -g 安装的包直接执行node app.js 能找到, 如果用sudo node app.js 就显示connot find module NODE_PATH已添加,不知道还有什么没设置的吗 跪求大牛们帮助

查看回复

回复 (11)

M
mq1980#2·13 年前

将你的 node的环境变量 配置到 /etc/profile文件里

然后 source /etc/profile

M
mq1980#3·13 年前

sudo -H -u 你自己的用户 node -e "console.log(process.env)"

这个命令会让你 以root执行但用户文件为你指定的用户,应该可以解决你的问题

J
jiyinyiyong#4·13 年前
node -e "console.log(process.env)"
sudo node -e "console.log(process.env)"

两个命令跑的结果也不一样, 的确没有 NODE_PATH, 不知道为什么

B
brighthas#5·13 年前

sudo is root role , no sudo is current user.


签名: 交流群244728015 《Node.js 服务器框架开发实战》 http://url.cn/Pn07N3

J
jiyinyiyong#6·13 年前
B
brighthas#7·13 年前

NODE_PATH just only one.


签名: 交流群244728015 《Node.js 服务器框架开发实战》 http://url.cn/Pn07N3

J
jridea#8·13 年前
引用 mq1980将你的 node的环境变量 配置到 /etc/profile文件里 然后 source /etc/profile

这样su下可以运行了 但是用sudo node app.js还是报connot find module..

M
mq1980#9·13 年前

-s

执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell -H

将环境变数中的 HOME (家目录)指定为要变更身份的使用者家目录(如不加 -u 参数就是系统管理者 root )

你试试加上 -H参数执行下

M
mq1980#10·13 年前

sudo -H -u 你自己的用户 node -e "console.log(process.env)"

这里面涉及到两个问题: 1 node的包寻找路径 2 sudo命令 会暂时改变你的使用者家目录

M
mq1980#11·13 年前

我手头没机器,晚上回去给你试试

参与回复
登录后即可参与回复。登录