当前位置: 首页 > 面试题库 >

使用分发nodejs软件包(Ubuntu)将NPM安装到主目录中

谭晓博
2023-03-14
问题内容

我想使用发行版Node.js软件包(或使用chris-lea ppa发行最新版本),但将NPM安装到我的主目录中。

这似乎有些挑剔,但是对于多语种/
github使用开发人员在Linux下设置语言运行时/库环境来说,这是一种惯用的方式:运行时的发行版包,每个用户环境中的第三方库(请参阅virtualenv,RVM-
RVM如果需要,还将为您构建Ruby)。如有必要,我将在本地构建节点,但这是一个PITA,因为节点已成为许多项目的附带开发要求。

  • 将node + npm安装到主目录的说明

问题答案:

NPM已经将本地软件包安装到您的项目中,但是我仍然希望使系统远离操作系统的文件。这是我建议分隔Nodejs软件包的方法:

通过chris-lea PPA安装Nodejs和NPM。然后,我在homedir中设置了一个包根目录,以保存Node“ global”包:

 $ NPM_PACKAGES="$HOME/.npm-packages"
 $ mkdir -p "$NPM_PACKAGES"

将NPM设置为使用此目录进行全局软件包安装:

 $ echo "prefix = $NPM_PACKAGES" >> ~/.npmrc

通过将以下内容添加到.zshrc / .bashrc中,配置PATH和MANPATH以查看$ NPM_PACKAGES前缀中的命令:

# NPM packages in homedir
NPM_PACKAGES="$HOME/.npm-packages"

# Tell our environment about user-installed node tools
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 configuration
MANPATH="$NPM_PACKAGES/share/man:$(manpath)"

# Tell Node about these packages
NODE_PATH="$NPM_PACKAGES/lib/node_modules:$NODE_PATH"

现在,当您执行操作时npm install -g,NPM会将库安装到该库中~/.npm- packages/lib/node_modules,并将可执行工具链接到该库~/.npm-packages/binPATH

只需npm install -g正常使用即可:

[justjake@marathon:~] $ npm install -g coffee-script
... (npm downloads stuff) ...
/home/justjake/.npm-packages/bin/coffee -> /home/justjake/.npm-packages/lib/node_modules/coffee-script/bin/coffee
/home/justjake/.npm-packages/bin/cake -> /home/justjake/.npm-packages/lib/node_modules/coffee-script/bin/cake
coffee-script@1.3.3 /home/justjake/.npm-packages/lib/node_modules/coffee-script

[justjake@marathon:~] $ which coffee
/home/justjake/.npm-packages/bin/coffee


 类似资料:
  • 将Node+NPM安装到主目录的说明

  • 问题内容: 我尝试从/ home / iwan / my-project目录中使用npm安装Express软件包: 奇怪的是npm不在当前目录(/ home / iwan / my-project / node_modules / express)中安装Express软件包,而是在/ home / iwan / node_modules / express中安装Express软件包。 我错过了什么

  • 问题内容: 我知道显而易见的答案是使用virtualenv和virtualenvwrapper,但是由于种种原因,我不能/不想这样做。 那么我该如何修改命令 使pip软件包安装在默认位置以外的地方site-packages? 问题答案: 采用: 你可能还想–使用此新的前缀来强制重新安装所有依赖项。你可以–多次使用以添加可以使用的任何选项(–prefix可能是你想要的,但是可以使用更多选项)。

  • 本文向大家介绍Docker 安装Debian / Ubuntu软件包,包括了Docker 安装Debian / Ubuntu软件包的使用技巧和注意事项,需要的朋友参考一下 示例 在单个运行命令上运行安装以合并更新和安装。如果以后添加更多软件包,它将再次运行更新并安装所有需要的软件包。如果更新是单独运行的,它将被缓存,并且软件包安装可能会失败。脚本安装需要将前端设置为非交互式,并传递-y来安装。在安

  • 问题内容: 康达4.2.13 MacOSX 10.12.1 我正在尝试将软件包安装到使用anaconda创建的新环境(虚拟)中。 在Anaconda文档中,这说得很好。它的完成方法与virtualenv相同。 激活要放置程序的环境,然后pip安装程序… 我在Ananconda中创建了一个空环境,如下所示: 激活它: 然后,我可以在终端中看到我正在环境中工作。当我尝试使用安装软件包时,出现了问题:

  • 问题内容: 有人可以告诉我在哪里可以找到使用我安装的Node.js模块 吗? 问题答案: 全球图书馆 您可以运行以查看安装了哪些全局库以及它们的位置。使用用于显示人的路截断输出。如果您只想显示主软件包而不显示与其一起安装的子软件包(可以使用),则可以使用- 将显示所有软件包并仅获取全局安装的软件包,只需添加-g ie即可。 在Unix系统上,它们通常放在全局中或在全局中安装。如果将环境变量设置为此