咕噜失败,"找不到模块'tmp'"

Ivo*_*ijk 7 npm gruntjs

我正在接管一个现有的项目.它包含package.json和Gruntfile.根据这里的说明,我跑了

npm install
Run Code Online (Sandbox Code Playgroud)

在全球安装grunt-cli之后.

但是,运行grunt导致

$ grunt --env=production
Loading "compass.js" tasks...ERROR
>> Error: Cannot find module 'tmp'
Warning: Task "compass" not found. Use --force to continue.

Aborted due to warnings.
Run Code Online (Sandbox Code Playgroud)

使用-v运行会产生回溯:

Loading "compass.js" tasks...ERROR
>> Error: Cannot find module 'tmp'
>>     at Function.Module._resolveFilename (module.js:338:15)
>>     at Function.Module._load (module.js:280:25)
>>     at Module.require (module.js:364:17)
>>     at require (module.js:380:17)
>>     at Object.exports.init (/..(path)../node_modules/grunt-contrib-compass/tasks/lib/compass.js:4:13)
>>     at Object.module.exports (/..(path)../node_modules/grunt-contrib-compass/tasks/compass.js:12:42)
>>     at loadTask (/..(path)../node_modules/grunt/lib/grunt/task.js:325:10)
>>     at /..(path)../node_modules/grunt/lib/grunt/task.js:361:7
>>     at Array.forEach (native)
>>     at loadTasks (/..(path)../node_modules/grunt/lib/grunt/task.js:360:11)
Run Code Online (Sandbox Code Playgroud)

"...(路径).."已被我插入替换长基路径,它是项目的根.

在进一步调查之后,compass.js导入'tmp'模块

  var tmp = require('tmp');
Run Code Online (Sandbox Code Playgroud)

谁/什么提供这个模块?

Ivo*_*ijk 8

删除node_modules(在源代码管理下,对我的惊喜)并运行

npm cache clean
npm install
Run Code Online (Sandbox Code Playgroud)

解决了这个问题.