mac osx 10.8的系统 用npm -g 安装的包直接执行node app.js 能找到, 如果用sudo node app.js 就显示connot find module NODE_PATH已添加,不知道还有什么没设置的吗 跪求大牛们帮助
回复 (11)
将你的 node的环境变量 配置到 /etc/profile文件里
然后 source /etc/profile
sudo -H -u 你自己的用户 node -e "console.log(process.env)"
这个命令会让你 以root执行但用户文件为你指定的用户,应该可以解决你的问题
node -e "console.log(process.env)"
sudo node -e "console.log(process.env)"
两个命令跑的结果也不一样, 的确没有 NODE_PATH, 不知道为什么
sudo is root role , no sudo is current user.
签名: 交流群244728015 《Node.js 服务器框架开发实战》 http://url.cn/Pn07N3
但是 sudo -s 以后, 再打印环境变量, NODE_PATH 是正确的, 这就奇怪了.
这样su下可以运行了 但是用sudo node app.js还是报connot find module..
-s
执行环境变数中的 SHELL 所指定的 shell ,或是 /etc/passwd 里所指定的 shell -H
将环境变数中的 HOME (家目录)指定为要变更身份的使用者家目录(如不加 -u 参数就是系统管理者 root )
你试试加上 -H参数执行下
sudo -H -u 你自己的用户 node -e "console.log(process.env)"
这里面涉及到两个问题: 1 node的包寻找路径 2 sudo命令 会暂时改变你的使用者家目录
我手头没机器,晚上回去给你试试