「记录」使用 Laravel elixir、gulp、gulp-Sass 遇到的问题和解决方案

问题

前些天升级了 Homestead 到指定版本(见 这里),发现好几个项目的 elixir、gulp、gulp-sass 随机搭配着出问题。

如:

$ gulp
[07:12:37] Warning: gulp version mismatch:
[07:12:37] Global gulp is 3.9.0
[07:12:37] Local gulp is 3.8.11
[07:12:38] Using gulpfile ~/Projects/phphub.org/laravel-china/gulpfile.js
[07:12:38] Starting 'default'...
[07:12:38] Starting 'sass'...
[07:12:38] 'sass' errored after 14 ms
[07:12:38] Error: `libsass` bindings not found. Try reinstalling `node-sass`?
    at getBinding (/Users/charliejade/Projects/phphub.org/laravel-china/node_modules/laravel-elixir/node_modules/gulp-sass/node_modules/node-sass/lib/index.js:22:11)
    at Object.<anonymous> (/Users/charliejade/Projects/phphub.org/laravel-china/node_modules/laravel-elixir/node_modules/gulp-sass/node_modules/node-sass/lib/index.js:188:23)
    at Module._compile (module.js:425:26)
    at Object.Module._extensions..js (module.js:432:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:311:12)
    at Module.require (module.js:366:17)
    at require (module.js:385:17)
    at Object.<anonymous> (/Users/charliejade/Projects/phphub.org/laravel-china/node_modules/laravel-elixir/node_modules/gulp-sass/index.js:3:17)
    at Module._compile (module.js:425:26)
Error running task sequence: { task: 'sass',
  message: 'sass catch',
  duration: 0.014146409,
  hrDuration: [ 0, 14146409 ],
  err: [Error: `libsass` bindings not found. Try reinstalling `node-sass`?] }
[07:12:38] Finished 'default' after 19 ms

跟目录使用下面命令升级本地 gulp :

$ npm install gulp@3.9.0 --save

又出现:

Error: Cannot find module 'orchestrator'
    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.<anonymous> (/Users/heikki/node_modules/gulp/index.js:4:20)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)

。。。

解决方法

修改 package.json 文件:

{
  "devDependencies": {
    "gulp": "*",
    "gulp-sass": "*",
    "laravel-elixir": "*"
  }
}

意指所有依赖都使用最新版本,最后安装成功。

摈弃世俗浮躁,追求技术精湛
Summer
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!