如何在 node.exe 中使用 npm?
Posted
技术标签:
【中文标题】如何在 node.exe 中使用 npm?【英文标题】:How to use npm with node.exe? 【发布时间】:2011-11-10 03:18:01 【问题描述】:我已经从the main page 下载了 nodejs 的 Windows 二进制文件 (.exe)。
如何安装和使用npm
(节点包管理器)?
【问题讨论】:
windows二进制是0.5.x,是node.js的不稳定版本。我建议不要在生产中运行它,但它可用于开发。在 Windows 生产环境中运行 node.js 之前,您可能需要等待 0.6(很快!)。 如果你通过 google 找到这个问题,Node.js for Windows 提供了 npm (注意:它是一个脚本传递可执行文件,而不是真正的可执行文件)。 有一个错误。见***.com/questions/25093276/… 【参考方案1】:nodejs.org 的当前 Windows 安装程序自 v0.6.11 (2012-02-20) 起将安装 NPM 和 NodeJS。
注意事项:
此时,64 位版本是您的最佳选择 32 位节点的安装路径在 64 位窗口中为“Program Files (x86)”。 您可能还需要在环境变量中的路径语句中添加引号,这似乎只是我见过的某些情况。 在 Windows 中,global 安装路径实际上位于用户的配置文件目录中%USERPROFILE%\AppData\Roaming\npm
%USERPROFILE%\AppData\Roaming\npm-cache
警告:如果您以其他用户身份执行定时事件或其他自动化操作,请确保以该用户身份运行 npm install
。一些模块/实用程序应该全局安装。
安装程序错误:您可能必须自己创建这些目录或将...\npm
目录添加到您的用户路径中。
要将所有用户的“全局”位置更改为更合适的共享全局位置%ALLUSERSPROFILE%\(npm|npm-cache)
(以管理员身份执行此操作):
[NODE_INSTALL_PATH]\etc\
目录
在您尝试npm config --global ...
操作之前需要这样做
为 npm 模块创建全局(管理员)位置
C:\ProgramData\npm-cache
- npm 模块会放在这里
C:\ProgramData\npm
- 全局安装模块的二进制脚本将放在这里
C:\ProgramData\npm\node_modules
- 全局安装的模块会放在这里
适当设置权限
管理员:修改
经过身份验证的用户:读取/执行
设置全局配置设置(管理员命令提示符)
npm config --global set prefix "C:\ProgramData\npm"
npm config --global set cache "C:\ProgramData\npm-cache"
将C:\ProgramData\npm
添加到系统的Path 环境变量中
如果您想将用户的“全局”位置更改为 %LOCALAPPDATA%\(npm|npm-cache)
路径:
C:\Users\YOURNAME\AppData\Local\npm-cache
- npm 模块会放在这里
C:\Users\YOURNAME\AppData\Local\npm
- 已安装模块的二进制脚本将放在这里
C:\Users\YOURNAME\AppData\Local\npm\node_modules
- 全局安装的模块会放在这里
配置 npm
npm config set prefix "C:\Users\YOURNAME\AppData\Local\npm"
npm config set cache "C:\Users\YOURNAME\AppData\Local\npm-cache"
将新的 npm 路径添加到您环境的 PATH
。
setx PATH "%PATH%;C:\Users\YOURNAME\AppData\Local\npm"
对于初学者来说,我用得最多的一些 npm 模块如下。
更高级的 JS 选项...
async/await - 异步函数,通过 babel 支持为了测试,我使用了以下工具...
网络工具。
webpack - 模块捆绑器,打包节点样式的模块以供浏览器使用 babel - 为您的部署环境转换现代 JS (ES2015+) 语法。如果你构建它...
shelljs - 节点脚本的 shell 实用程序。我曾经使用 gulp/grunt,但现在将有一个scripts
目录,该目录通过 npm 在 package.json
scripts 中引用。您可以在纯脚本中使用 gulp 工具。
【讨论】:
截至 2 月 25 日,该错误似乎已修复;我可以从 %path% 运行 npm(或者 iisnode 为我修复) 要在 Windows 上使用 NPM,请使用Node.js Command Prompt
。仅仅试图从任何其他命令行运行npm
是行不通的。
适合初学者的模块列表。不要使用普通的 Tedious,而是使用 node-mssql to wrap Tedious 以获得更简单的 api。
我必须手动创建目录/文件夹C:\Users\kevitt\AppData\Roaming\npm,然后才能安装我的第一个包。
@DanielA.A.Pelsmaeker 我有 从不 使用 Node.js 命令提示符 在 Windows 上运行 npm
;并不是说这不是一种可行的方法。如果使用它的人知道他们在做什么,那么几乎任何终端或 shell 都可以工作!我几乎每天都使用npm
命令;如果我在使用 Windows 时遇到困难,我会选择 BASH;但是,Windows 原生 CMD 和 PowerShell 工作,BASH、WSL(BASH、ZSH、Fish)......它们都工作得很好。 “仅仅试图从任何其他命令行运行 npm 是行不通的。” 这句话就像说您必须使用 VIM 来编写 javascript,而任何其他 IDE 都无法工作。 #facepalm【参考方案2】:
如果未使用 msi 安装程序 安装 Node.js,则需要手动设置 npm。
设置 npm
首先,假设我们有一个位于文件夹c:\nodejs
中的node.exe 文件。现在设置 npm-
-
从 GitHub (https://github.com/npm/npm/releases) 下载最新的 npm 版本
创建文件夹
c:\nodejs\node_modules
和c:\nodejs\node_modules\npm
将下载的zip文件解压到c:\nodejs\node_modules\npm
文件夹中
将 npm 和 npm.cmd 文件从 c:\nodejs\node_modules\npm\bin
复制到 c:\nodejs
文件夹
为了测试 npm,打开 cmd.exe
将工作目录更改为 c:\nodejs
并输入 npm --version
。如果设置正确,您将看到 npm 的版本。
设置完成后,可用于在本地或全局安装/卸载软件包。有关使用 npm 的更多信息,请访问 https://docs.npmjs.com/。
作为最后一步,您可以将节点的文件夹路径 c:\nodejs
添加到 path
环境变量中,这样您在命令提示符下运行 node.exe
和 npm
时就不必指定完整路径。
【讨论】:
工作就像一个魅力,谢谢。 目前最好的答案。投票得最好的链接断开了。【参考方案3】:npm
可以从这里下载(无需安装):
http://nodejs.org/dist/npm/
https://github.com/npm/npm/releases
【讨论】:
只要把压缩包解压到和node.exe在同一个文件夹里,这样npm.cmd就和node.exe同级了。 如果您没有管理员权限,这是“安装”节点和 npm 的好方法。一旦你有了 npm 和节点,将其添加到你的路径中:set NODE=%USERPROFILE%\nodejs
和 PATH=%PATH%;%NODE%
,你就可以开始了......
@djKianoosh,这有点绕道。您只需要set path=your/folder/containing/node
。例如,set path=%userprofile%\nodejs
。然后打电话给npm
,就这样。命令set path
只影响你当前的 cmd 会话,不会在注册表中全局影响,所以你不必撤消它。
@Ezward,您不需要它们在同一个文件夹中。见上面的评论。
没错@Pacerier。我有类似的脚本在登录时运行以自动化它。企业的主要问题是缺乏管理员权限和代理/防火墙。【参考方案4】:
我刚刚使用 msi (node-v0.6.12.msi) 在 Windows 7 中安装了最新版本的节点 (0.6.12)。
npm 已经自带了,不需要单独包含。
我在运行 npm (npm install mysql) 时遇到权限问题,从我的 nodejs 所在的路径,即 C:\Program Files (x86)\nodejs
然后我按照以下步骤操作:
1) 在环境变量-路径系统变量中添加C:\Program Files (x86)\nodejs\npm
。
2) 在命令提示符下仅返回 C:\
并给出命令 - npm install mysql
- 瞧!成功了。。
希望这会有所帮助。
【讨论】:
在哪里下载那个 msi?我没有在网站上看到它。 @vee,是不是就在主页nodejs.org/download 上。搜索“msi”。【参考方案5】:我正在使用 npm 在 Windows 上运行 node.js。 诀窍是简单地使用cygwin。我按照https://github.com/joyent/node/wiki/Building-node.js-on-Cygwin-(Windows) 下的方法进行操作。但请确保您使用的是 0.4.11 版本的 nodejs,否则 npm 会失败!
【讨论】:
cygwin 永远不应该是答案。解决这些问题的方法是错误的。 使用 node 0.6,您可以在 windows 下轻松使用 node,但是许多依赖二进制文件的 node 模块不支持 windows,然后您又回到了需要类似 unix 环境的地步。 实际上@Troy Howard 如果您使用 cygwin,您不必像处理 Windows 一样多。仅这一点就是一个巨大的优势,因为它消除了他大部分问题的根源。 @TroyHoward 我会更进一步说 Windows 永远不应该成为任何类型的 Web 开发的答案。 比您反驳的步骤更进一步,Windows Visual Studio 和 .NET 非常适合 Web 开发,包括所有在 IIS 上运行的 php 和 Perl。【参考方案6】:我刚刚从here 安装了适用于 Windows 8.1 的 64 位 Node.js v0.12.0。 它大约有 8MB,因为它是 MSI,您只需双击即可启动。它会自动设置你的环境路径等。
然后要获取命令行,只需 [Win-Key]+[S]
进行搜索,然后输入“node.js”作为您的搜索短语。
选择 Node.js Command Prompt
条目而不是 Node.js
条目。
两者都会给你一个命令提示符,但只有前者会真正起作用。 npm 内置在该下载中,因此在提示符处只需 npm -whatever
。
【讨论】:
这解决了我来这里的问题 - 在 通过 MSI 安装程序在 Windows 上安装 node.js 之后,我仍然无法从命令行访问 npm,并在“node.js”窗口只是给出了我需要使用命令行的错误。我确信我不必手动添加路径 - 然后我发现我需要在特殊的节点 shell 中运行,如this answer所示。谢谢。【参考方案7】:使用像 Chocolatey 这样的 Windows 包管理器。首先安装 Chocolatey,如 homepage 所示。这应该是轻而易举的事
然后,要安装 Node JS(安装),请从命令行或 PowerShell 运行以下命令:
C:> cinst nodejs.install
【讨论】:
这对我有用。 Windows 8.1 中的路径正确设置为:C:\Program Files\nodejs。但是除非我切换到该路径,否则我无法运行 npm。但是,如果我运行 nodejs cmd 行提示符,它会设置它以便它工作。它设置 C:\Windows\System32\cmd.exe /k "C:\Program Files\nodejs\nodevars.bat" 并在 "C:\Program Files\nodejs\" 中运行 也许 c:\> cinst nodejs 做了我在 cinst nodejs.install 之前运行的那个。我不确定。 (为什么我不能更正旧评论?) 您可以在发布后在 5 分钟内编辑自己的 cmets。 meta.stackexchange.com/questions/459/… 。现在看来你至少可以删除前两个 cmets。【参考方案8】:这是@CTS_AE 提供的关于如何将 NPM 与独立 node.exe 一起使用的指南: https://***.com/a/31148216/228508
-
从 nodejs.org 单独下载 node.exe
从 github https://github.com/npm/npm/releases 获取 NPM 发布 zip
在与 node.exe 相同的文件夹中创建一个名为:node_modules 的文件夹
将 NPM zip 解压到 node_modules 文件夹中
将提取的 npm 文件夹重命名为 npm 并删除任何版本控制,即:npm-3.3.4 –> npm。
将 npm.cmd 从 /npm/bin/ 文件夹复制到带有 node.exe 的根文件夹中
【讨论】:
【参考方案9】:我刚刚安装了 Node.js,它包含 NPM,可以从 Windows cmd 运行。但是,请确保以管理员身份运行它。右键单击cmd并选择“以管理员身份运行”。这让我可以调用 npm 命令。
【讨论】:
【参考方案10】:搜索系统中的所有 .npmrc 文件。
请验证您提供的路径是否正确。如果不是,请删除不正确的路径。
【讨论】:
以上是关于如何在 node.exe 中使用 npm?的主要内容,如果未能解决你的问题,请参考以下文章