如何解决'npm应该在你的普通shell中运行在节点repl之外'

Ani*_*kur 43 node.js npm

我是node.js的新手.我从官方网站下载并安装了node.js安装程序.我在PATH环境变量中添加了此安装程序文件夹,我可以运行程序.但是当我尝试在节点控制台中使用npm安装某个软件包时,它会显示错误npm should be run outside of the node repl, in your normal shell.我也在一个单独的控制台上试了一下.但它显示虽然我在环境变量中添加了节点但找不到命令.

在此输入图像描述

在此输入图像描述

Jam*_*ruk 106

对于Windows用户,请npm从命令提示符(cmd.exe)运行命令,而不是Node.Js(node.exe).所以你的"普通shell"是cmd.exe. (我同意这条消息可能会让Windows,节点新手感到困惑.)

顺便说一下,Node.js命令提示符实际上只是cmd.exe的一个简单快捷方式.

下面是从cmd.exe安装grunt的示例屏幕截图:

在此输入图像描述

  • 这应该是公认的答案.谢谢. (11认同)
  • 另外不要忘记在管理员模式下运行它,否则在安装过程中你会得到权限错误。 (2认同)

小智 20

不要使用node.js图标运行应用程序.

转到所有程序 - > Node.js-> Node.js命令提示符.

以下是示例屏幕截图.

在此输入图像描述

在此输入图像描述


CTS*_*_AE 12

如果您像我一样在没有管理权限的受限环境中运行,这意味着启动和运行节点的唯一方法是在不使用安装程序的情况下获取可执行文件(node.exe).您也无法更改路径变量,这使得它更具挑战性.

这是我做的(对于Windows)

  1. 将node.exe扔到自己的文件夹中(单独下载node.exe )
  2. 从github获取NPM发行版zip:https://github.com/npm/npm/releases
  3. 在node.exe文件夹中创建名为:node_modules的文件夹
  4. 将NPM zip解压缩到node_modules文件夹中
  5. 确保最顶层的文件夹名为npm(删除npm文件夹名称上的任何版本控制,即:npm-2.12.1 - > npm)
  6. 使用node.exe将npm.cmd从npm/bin文件夹复制到最顶层的文件夹中
  7. 打开命令提示符到node.exe目录(右键单击"在此打开命令窗口")
  8. 现在,您将能够通过以下方式运行您的npm安装程序: npm install -g express

通过npm运行安装程序现在将自动安装需要它们的软件包(node_modules和root)

如果您没有适当的权限,请不要忘记您将无法设置路径变量.因此,最好的方法是在node.exe目录中打开命令提示符(右键单击"在此打开命令窗口")


msc*_*dex 9

最好使用nodejs.org中的实际(msi)安装程序,而不是仅下载节点可执行文件.安装程序包含npm,可以更轻松地管理节点安装.有一个32位和64位Windows的安装程序.

还有其他一些花絮:

  • 全局安装模块并不能达到预期效果.您应该全局安装的唯一模块(-gnpm中的标志)是安装命令的模块.因此,要安装Express,您只需npm install express将Express安装到当前的工作目录即可.如果您正在寻找Express 项目生成器(命令),则需要npm install -g express-generator为Express 4执行此操作.

  • 您可以在命令提示符的任何位置使用节点来执行脚本.例如,如果您已经编写了一个单独的脚本:node foo.js.或者你可以通过选择node.js(开始菜单)快捷方式或只需输入node命令提示符来打开REPL(正如你已经发现的那样).


Ani*_*kur 6

正如mscdex所说,NPM附带了nodejs msi安装文件.我碰巧安装了节点js安装程序(独立).要单独添加NPM,我按照以下步骤操作

  1. 这里下载NPM的最新zip文件.
  2. 在与节点js安装程序相同的文件中提取它.
  3. 如果已将包含节点js安装程序的目录添加到PATH env变量,那么现在甚至npm应该是可识别的命令.