尝试运行grunt时找不到模块'findup-sync'

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了尝试运行grunt时找不到模块'findup-sync'相关的知识,希望对你有一定的参考价值。

我在安装后运行grunt-cli时遇到问题。我跑

npm install -g grunt-cli

然后运行grunt错误

    node.js:63
    throw e;
    ^
Error: Cannot find module 'findup-sync'
    at loadModule (node.js:275:15)
    at require (node.js:411:14)
    at Object.<anonymous> (/home/tmartin/bin/grunt:9:14)
    at Module._compile (node.js:462:23)
    at Module._loadScriptSync (node.js:469:10)
    at Module.loadSync (node.js:338:12)
    at Object.runMain (node.js:522:24)
    at Array.<anonymous> (node.js:756:12)
    at EventEmitter._tickCallback (node.js:55:22)
    at node.js:773:9

这是我安装的:

tmartin@timcomp:~$ npm list -g
/home/tmartin/lib
└─┬ grunt-cli@0.1.6
  ├─┬ findup-sync@0.1.2
  │ ├─┬ glob@3.1.21
  │ │ ├── graceful-fs@1.2.0
  │ │ ├── inherits@1.0.0
  │ │ └─┬ minimatch@0.2.11
  │ │   ├── lru-cache@2.2.2
  │ │   └── sigmund@1.0.0
  │ └── lodash@1.0.1
  └─┬ nopt@1.0.10
    └── abbrev@1.0.4
答案

我不得不安装并链接findup-sync和其他一些npm软件包来解决这些依赖性问题。我虽然npm应该为我们处理它们,但是手动安装依赖项会使问题消失。

npm install findup-sync -g

npm link findup-sync

另一答案

我让我再次运行全局和我的仓库重新安装grunt-cli。

npm install -g grunt-cli

cd myrepo

npm install grunt-cli

我认为Yosemite安装在我的文件中打破了一些东西......

另一答案

这是因为npm没有为/ usr / lib / node_modules / grunt-cli中的子目录node_modules设置正确的权限。在我的情况下,我有:

drwxr-x--- 6 nobody root 4096 16 févr. 17:08 node_modules

当以非root用户身份运行grunt时,由于拒绝读取此目录的权限,我遇到了同样的错误(无法找到模块'findup-sync')。

解决方案是使用chmod修复权限:chmod a + rx node_modules。

但事实上,涉及所有目录。最好的方法是todo:

find /usr/lib/node_modules/grunt-cli -type d -exec chmod a+rx {} ;

这可能是一个分发错误(我使用Archlinux)。

另一答案

这可能看起来很简单,但如果其他人不确定是否存在权限问题,请尝试运行sudo grunt然后从那里开始。

另一答案

这也可能是显而易见的,但在我的情况下,我已经在我的主目录(在chromebook上)设置了我的npm路径,并且需要将.node_modules添加到我的.profile PATH=~./node_modules:$PATH 然后运行: source ~/.profile

另一答案

我能够通过使用以下命令重新安装Grunt来解决这个问题:

sudo npm remove -g grunt-cli
sudo npm install -g grunt-cli

以上是关于尝试运行grunt时找不到模块'findup-sync'的主要内容,如果未能解决你的问题,请参考以下文章

grunt:从终端运行时找不到命令

使用 grunt 时找不到模块“业力”

指南针:运行`grunt server`时找不到服务器

错误:使用节点命令运行 JS 文件时找不到模块“firebase”

UnhandledPromiseRejectionWarning:错误:当我尝试运行我的代码时找不到模块'../database/db'

接收TS2304:找不到名称'文件'| TS2304:运行“npm run tsc”命令时找不到名称“ReadableStream”