如何在 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 路径添加到您环境的 PATHsetx PATH "%PATH%;C:\Users\YOURNAME\AppData\Local\npm"

对于初学者来说,我用得最多的一些 npm 模块如下。

axios - 用于更复杂的 http 帖子/获取 isomorphic-fetch - 用于 http(s) 发布/获取请求 node-mailer - smtp 客户端 mssql - 用于查询 MS SQL Server 的接口和驱动程序库(包装 tedious)

更高级的 JS 选项...

async/await - 异步函数,通过 babel 支持

为了测试,我使用了以下工具...

mocha - 测试框架 chai - 断言库,我喜欢 chai.expect sinon - 间谍、存根和垫片 sinon-chai - 使用 sinon 的断言工具扩展 chai babel-istanbul - 报道报告 jest - 一个工具中的并行测试、断言、模拟、覆盖率报告 babel-plugin-rewire - 在某些模拟条件下比开玩笑更容易

网络工具。

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_modulesc:\nodejs\node_modules\npm 将下载的zip文件解压到c:\nodejs\node_modules\npm文件夹中 将 npmnpm.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.exenpm 时就不必指定完整路径。

【讨论】:

工作就像一个魅力,谢谢。 目前最好的答案。投票得最好的链接断开了。【参考方案3】:

npm可以从这里下载(无需安装):

http://nodejs.org/dist/npm/

https://github.com/npm/npm/releases

【讨论】:

只要把压缩包解压到和node.exe在同一个文件夹里,这样npm.cmd就和node.exe同级了。 如果您没有管理员权限,这是“安装”节点和 npm 的好方法。一旦你有了 npm 和节点,将其添加到你的路径中:set NODE=%USERPROFILE%\nodejsPATH=%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?的主要内容,如果未能解决你的问题,请参考以下文章