最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How do you set up npm (node package manager) without root access? - Stack Overflow

programmeradmin2浏览0评论

Setting npm up as the root user is straighforward and workds. Except you have to run npm mands as root (not remended). So I thought I'd try setting it up as a non-root user.

According to npm documentation, a non-root user without root access can set up npm by:

  1. creating a .npmrc file with root, binroot, and manroot pointing to folders that the user owns.
  2. Then running the install script.

OK. Install was fine.

But node can't see the packages provided by npm.

So how do I make node aware of the packages provided by npm? (I didn't have to do anything when I previously installed npm as root). I can set require.paths within node, or set the NODE_PATH environment variable, but to what?

Thanks.

Setting npm up as the root user is straighforward and workds. Except you have to run npm mands as root (not remended). So I thought I'd try setting it up as a non-root user.

According to npm documentation, a non-root user without root access can set up npm by:

  1. creating a .npmrc file with root, binroot, and manroot pointing to folders that the user owns.
  2. Then running the install script.

OK. Install was fine.

But node can't see the packages provided by npm.

So how do I make node aware of the packages provided by npm? (I didn't have to do anything when I previously installed npm as root). I can set require.paths within node, or set the NODE_PATH environment variable, but to what?

Thanks.

Share Improve this question edited Apr 16, 2011 at 1:24 MPelletier 16.7k18 gold badges89 silver badges140 bronze badges asked Sep 15, 2010 at 15:06 Mark BolusmjakMark Bolusmjak 24.4k10 gold badges76 silver badges131 bronze badges 1
  • Doesn't npm e with node now? I've never had to run npm mans as root unless I'm using -g... – beatgammit Commented Nov 17, 2012 at 0:44
Add a ment  | 

2 Answers 2

Reset to default 7

This worked for me:

  1. Make a ~/.node folder

    mkdir ~/.node
    
  2. Edit ~/.npmrc and add the line

    prefix = ~/.node
    
  3. Edit your ~/.profile or ~/.bash_profile and add these lines

    PATH="$HOME/.node/bin:$PATH"
    NODE_PATH="$HOME/.node/lib/node_modules:$NODE_PATH"
    

Now I can do things like npm -g install http-server and it will install to ~/.node without root. With this in place, when I then type http-server, it runs.

Through a little exploration, it seems you can either:

  1. set your NODE_PATH to whatever npm's root directory is, or
  2. while in node, invoke require.paths.push('path_to_npm_root')
发布评论

评论列表(0)

  1. 暂无评论