在我的系统上更新了节点,现在grunt不会在npm项目中运行

时间:2015-06-25 07:11:05

标签: node.js npm node-sass

我最近将计算机上的节点更新为0.12.4。这似乎对我在node.js express.js中工作的项目做了些什么。就我所知,我现在正在运行的节点版本和node_modules之间似乎存在兼容性问题。我使用Git回到这个项目的早期版本(版本运行良好),现在它们也不起作用。

我的电脑正在运行: OSX Yosemite 10.10.3 节点:0.12.4 npm:2.11.3

我的项目依赖于我的package.json文件:

    "dependencies": {
      "body-parser": "~1.8.1",
      "cookie-parser": "~1.3.3",
      "debug": "~2.0.0",
      "express": "~4.9.0",
      "grunt": "^0.4.5",
      "grunt-sass": "^0.17.0",
      "jade": "~1.6.0",
      "morgan": "~1.3.0",
      "node-sass": "^1.2.3",
      "serve-favicon": "~2.1.3"
    },
    "devDependencies": {
      "grunt-contrib-watch": "^0.6.1"
    }

问题:当我在终端中运行grunt时,我收到错误告诉我:

    Loading "sass.js" tasks...ERROR
    >> Error: Cannot find module 'node-sass'
    Warning: Task "sass" not found. Use --force to continue.

所以我删除了所有node_modules并在终端中运行了npm install,我得到了更多错误:

    Error: Module did not self-register.
      at Error (native)
      at Module.load (module.js:355:32)
      at Function.Module._load (module.js:310:12)
      at Module.require (module.js:365:17)
      at require (module.js:384:17)
      at Object.<anonymous> (/Users/sheynawatkins/dev/node/lola/node_modules/node-sass/lib/index.js:181:15)
      at Module._compile (module.js:460:26)
      at Object.Module._extensions..js (module.js:478:10)
      at Module.load (module.js:355:32)
      at Function.Module._load (module.js:310:12)
    npm ERR! Darwin 14.3.0
    npm ERR! argv "node" "/usr/local/bin/npm" "install"
    npm ERR! node v0.12.4
    npm ERR! npm  v2.11.3
    npm ERR! code ELIFECYCLE

    npm ERR! node-sass@1.2.3 postinstall: `node scripts/build.js`
    npm ERR! Exit status 1
    npm ERR! 
    npm ERR! Failed at the node-sass@1.2.3 postinstall script 'node scripts/build.js'.
    npm ERR! This is most likely a problem with the node-sass package,
    npm ERR! not with npm itself. 

我该怎么办?

1 个答案:

答案 0 :(得分:1)

您使用的是node-sass的古老版本(^ 1.2.3,而当前版本是3.2.0),因此请尝试安装更新的版本(使用Node安装就好了0.12):

$ npm i node-sass@latest --save