我正在先前建立的项目中工作。该项目是使用Node和Grunt构建的。我在项目的根文件夹中有一个Gruntfile.js。
我在本地和全球安装了grunt,使用
npm i grunt
npm i -g grunt
之后,我在本地和全局安装了grunt-cli,使用
npm i grunt-cli
npm i -g grunt-cli
并且当我尝试运行任何grunt命令(开发,初始化等)时,出现错误
internal/modules/cjs/loader.js:638
throw err;
^
Error: Cannot find module 'findup-sync'
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
at Function.Module._load (internal/modules/cjs/loader.js:562:25)
at Module.require (internal/modules/cjs/loader.js:690:17)
at require (internal/modules/cjs/helpers.js:25:18)
at Object.<anonymous> (/usr/lib/nodejs/grunt-cli/bin/grunt:8:14)
at Module._compile (internal/modules/cjs/loader.js:776:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
at Module.load (internal/modules/cjs/loader.js:653:32)
at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
at Function.Module._load (internal/modules/cjs/loader.js:585:3)
我在很多论坛和这里也都进行了搜索,但没有找到答案。有人可以帮我吗?
UPDATE
在花费超过24小时解决此错误后,我通过以下步骤进行了修复:
apt install node-grunt-cli
在OSX上这不是必需的。
grunt develop
作为sudo,即使更改许多文件夹的权限。
感谢Pablo Lopes使我走上了正确的道路(请参阅他的问题,其中包括答案)。我通过以下方法解决了我的问题:
通过apt安装node-grunt-cli:sudo apt install node-grunt-cli
使用sudo运行咕unt声:sudo grunt
这不是理想的解决方案,因为它在运行grunt时需要使用sudo-不必要。