尝试运行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'的主要内容,如果未能解决你的问题,请参考以下文章
错误:使用节点命令运行 JS 文件时找不到模块“firebase”
UnhandledPromiseRejectionWarning:错误:当我尝试运行我的代码时找不到模块'../database/db'
接收TS2304:找不到名称'文件'| TS2304:运行“npm run tsc”命令时找不到名称“ReadableStream”