我试着在优胜美地的mac电脑上安装grunt. node 已安装在最新版本中.如果我在终端中输入"node-v",我会得到v0行.12.5. 那很好.但当我想用npm安装一些东西时,我只得到一个错误...

我try 了"sudo npm install-g grunt cli"、"sudo npm install npm-g",也try 了"npm-v",我总是会遇到这个错误...

Error: Cannot find module 'are-we-there-yet'
at Function.Module._resolveFilename (module.js:336:15)
at Function.Module._load (module.js:278:25)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object.<anonymous> (/usr/local/Cellar/node/0.10.22/lib/node_modules/npm/node_modules/npmlog/log.js:2:16)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Module.require (module.js:365:17)

有人知道问题是什么,或者更好的解决方案是什么?

推荐答案

通过删除它的一些依赖项,您已经突破了npm.

are-we-there-yetnpmlog的依赖项,npm本身的依赖项,你不知怎么删除了它.对于这种情况,通常的简单解决方案是重新安装一个软件包,但如果npm无法运行,这就不起作用.幸运的是,npm tarball预装了依赖项,因此installing npm from scratch就像打开一个tarball一样简单.

1) 转到global node_modules目录(如果可以运行,npm root -g会打印什么):

$ cd /usr/local/lib/node_modules

2) 删除损坏的npm目录或将其移动到其他地方(请注意,您可能需要提升此目录和以下步骤的权限):

$ mv npm /tmp

3) 从注册表下载并解包fresh npm(您要安装的替代版本,例如3.10.8):

$ curl -L registry.npmjs.com/npm/-/npm-{VERSION}.tgz | tar xz --transform="s:^package:npm:"

您可以使用此安装脚本自动执行其中一些操作:

$ curl -L https://www.npmjs.com/install.sh | sh

在这一点上,npm应该再次起作用.

Node.js相关问答推荐

编辑Mongoose中的对象嵌套数组

使用Node.js中的";类型";:";模块";不导入文件

从mongodb集合中获取每分钟数据的每小时数据

错误 node :错误:绑定消息提供 16 个参数,但准备语句需要 15 个

使用 Nodejs 获取 Firebase 云消息传递历史记录

在路由上使用中间件时,Nodejs Express 应用程序失败

看起来这段代码try GET 请求发送的值变为空白

BrowserRouter 无法渲染组件

如何避免在 mongodb 聚合中查找重复结果?

使用react 组件加载特定 DIV 而无需重新加载整个页面

kubernetes 上的 nextjs 无法启动

node Axios 创建全局令牌变量以在单独的变量头中使用

MongoDB 根据使用聚合的条件从嵌套数组中删除对象

如何使用 Jest 模拟异步函数的延迟时间

WSL2 上需要脚本运行的 NPM 包的权限被拒绝

使用加密模块的流功能获取文件的哈希(即:没有 hash.update 和 hash.digest)

Node.js 表达的 Error 对象expose 了哪些属性?

制作一个接受命令行参数的脚本

使用 Node.JS,如何按时间顺序获取文件列表?

node.js 模块和函数中this的含义