【问题标题】:npm install package installs into /home/username/node_modules/package/node_modules/npm install package 安装到 /home/username/node_modules/package/node_modules/
【发布时间】:2014-10-08 17:02:18
【问题描述】:

我正在尝试使用npm install packagename 将软件包安装到项目中。然后安装继续安装到/home/myusername/node_modules/packagename/node_modules/。为什么会这样?我猜这与.bashrc 中设置的$NODE_PATH 有关。

作为 Linux 新手,我复制粘贴了很多内容。所以,我的 .bashrc 看起来有点乱。这就是我的 bashrc 中与 Node / NPM 相关的所有内容。请帮助我,以便按照他们应该的方式进行安装。

# Allows for installing npm packages globally without sudo
NPM_PACKAGES="~/.npm-packages"
NODE_PATH="$NPM_PACKAGES/lib/node_modules:$NODE_PATH"
PATH="$NPM_PACKAGES/bin:$PATH"
# Unset manpath so we can inherit from /etc/manpath via the `manpath`
# command
unset MANPATH  # delete if you already modified MANPATH elsewhere in your config
MANPATH="$NPM_PACKAGES/share/man:$(manpath)"

export NODE_PATH=~/.npm-packages/lib/node_modules:/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript:/home/anton/.npm-packages/lib/node_modules

### Added by the Heroku Toolbelt
export PATH="/usr/local/heroku/bin:$PATH"
export NODE_PATH=/home/anton/.npm-packages/lib/node_modules:/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript:/home/anton/.npm-packages/lib/node_modules:/home/anton/npm/lib/node_modules
export NODE_PATH=/home/anton/.npm-packages/lib/node_modules:/usr/lib/nodejs:/usr/lib/node_modules:/usr/share/javascript:/home/anton/.npm-packages/lib/node_modules:/home/anton/npm/lib/node_modules
export PATH=$HOME/local/bin:$PATH
export PATH=$HOME/local/bin:$PATH

提前致谢, 安东

【问题讨论】:

    标签: node.js bash ubuntu npm


    【解决方案1】:

    我相信我理解您的问题。您正在尝试将安装程序放入某个目录。

    如果是这样,那么您需要查看命令 chroot 或更改 root。

    这会将根目录更改为当前目录。

    例如:

    cd /你的/项目/目录

    chroot ./chroot

    然后将您的根目录更改为项目目录并在那里安装所有文件。 更多信息请看这里:http://man7.org/linux/man-pages/man2/chroot.2.html

    【讨论】:

    • 不,不是。我希望 npm 表现得像它默认的那样。当我在本地文件夹中安装时,它会将包安装到/home/myusername/node_modules/packagename/node_modules/。我不想要这个 - 我希望 npm 按预期在 cwd 中创建 node_modules。感谢您的回答。
    • 好的。我不得不对我的 linux 观点进行尝试,但我在网上找到了一些可能有帮助的东西。见 (gruntjs.com/getting-started#the-gruntfil) (github.com/krampstudio/grunt-jsdoc/issues/93) (stackoverflow.com/questions/14032160/…)
    • 我相信这实际上是一个源于 bashrc 的 Linux 问题,就在那里。我对 npm 非常熟悉,并且知道 -g 与本地安装。我遇到的问题是,在本地安装时,无论我的 cwd 是什么,模块/包最终都会出现在一个名为 /home/myusername/node_modules/packagename/node_modules/ 中的包的子文件夹中。
    【解决方案2】:

    我遇到了类似的问题:这些包不是安装在我所在的项目文件夹中,而是安装在 /Users/me 目录中。

    我的修复:通过运行 npm init 初始化 npm 并在项目文件夹中创建一个 package.json 文件。

    帖子“npm install module in current directory”帮助我找到了这个解决方案。

    【讨论】:

      猜你喜欢
      • 2016-11-23
      • 1970-01-01
      • 2015-08-13
      • 1970-01-01
      • 1970-01-01
      • 2019-10-10
      • 2017-11-11
      • 2019-06-28
      • 1970-01-01
      相关资源
      最近更新 更多