如何在 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?的主要内容,如果未能解决你的问题,请参考以下文章

如何配置node环境配

node.js关于node.js,如何解决npm should be run outside of the Node.js REPL, in your normal shell报错?

node.js关于node.js,如何解决npm should be run outside of the Node.js REPL, in your normal shell报错?

node.js关于node.js,如何解决npm should be run outside of the Node.js REPL, in your normal shell报错?

NodeJS(node.exe, npm, express, live-server)安装

无法运行“npm start”显示错误。如何解决?