我正在先前构建的项目中工作。该项目是使用Node和Grunt构建的。 我在项目的根文件夹中有一个Gruntfile.js。
我使用
在本地和全局安装了gruntnpm i grunt
npm i -g grunt
之后,我使用
在本地和全局安装了grunt-clinpm 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)
我在很多论坛和这里都搜索过,但没有得到答案。 有人可以帮我吗?
更新
在错误中损失了超过24小时的工作时间后,我可以按照以下步骤对其进行修复:
apt install node-grunt-cli
在OSX上不需要。
grunt develop
作为sudo,即使更改了许多文件夹的权限。
答案 0 :(得分:2)
感谢帕勃罗·洛佩斯(Pablo Lopes)将我带入正确的道路(请参阅他的问题,其中包括答案)。我通过以下方式解决了我的问题:
通过apt安装node-grunt-cli:
sudo apt install node-grunt-cli
使用sudo运行咕unt声:
sudo grunt
这不是理想的解决方案,因为它在运行grunt时需要使用sudo-不必要。
答案 1 :(得分:0)
对我来说,通过apt安装是问题的原因。通过npm npm install grunt -g
安装可以解决此问题。考虑到apt现有的全局grunt安装,您可能需要添加--force
才能覆盖。