我的grunt
任务似乎运行得非常好,但每次运行它我都会收到此错误:
Loading "jshint.js" tasks...ERROR
>> Error: Cannot find module 'underscore'
有什么方法可以找出这种情况发生的原因吗?我可以看到/grunt-contrib-jshint
目录位于/node_modules
目录中。有没有理由找不到underscore
模块?我尝试过运行npm install
,但在运行grunt时仍然遇到同样的错误。
有什么想法吗?任何帮助表示赞赏。
答案 0 :(得分:20)
当你有cannot find module x errors
时,有时候可能有用的一件事就是删除整个npm_modules
文件夹,然后再次运行npm install
。
有时候,在最初的npm install
上,它可能无法获得一个包的依赖关系,并且当你再次运行npm install
时它不会尝试再次获取它,因为它得到了全部你想要的软件包,可能不是这些软件包的所有依赖项。
答案 1 :(得分:4)
你可以使用npm update
我测试了这个命令和这个答案。
答案 2 :(得分:0)
执行以下操作:
npm update
npm install underscore
如果这不起作用,请执行以下操作。
rm -rf node_modules
npm install -d
npm update
答案 3 :(得分:0)
如果您使用的是 Magento 2,请确保您没有意外删除文件“package.json”。如果文件存在,则执行:
npm remove -g grunt grunt-cli && npm install -g grunt grunt-cli && npm install grunt --save-dev && npm install
然后你可以测试
grunt refresh