我刚刚开始得到相同的错误并通过替换代码来修复它 C:\Projects\node_modules\strip-bom\index.js 有了这个:
C:\Projects\node_modules\strip-bom\index.js
'use strict'; module.exports = function (x) { if (typeof x !== 'string') { throw new TypeError('Expected a string, got ' + typeof x); } // Catches EFBBBF (UTF-8 BOM) because the buffer-to-string // conversion translates it to FEFF (UTF-16 BOM) if (x.charCodeAt(0) === 0xFEFF) { return x.slice(1); } return x; };
然后,我不得不跑 npm rebuild node-sass 让它再次工作。这似乎是旧版本的问题 的 带BOM 强> 节点模块。
npm rebuild node-sass
有关详细信息,请查看以下内容: https://github.com/sindresorhus/strip-bom/commit/e2a3c3b83706ee5baac284f3862d3f6b9e1564e5
的 更新的答案: 强>
此错误是由使用旧版本的Node引起的。 Strip-bom模块现在正在使用 ES2015(ES6) 需要Node 5.0+的语法。 (参见Node的ES2015支持列表 这里 )
要测试您的Node版本,请运行:
node -v
如果小于5.0,则需要更新它。您可以在此处下载最新版本的Node:
https://nodejs.org/en/
安装新版本的Node后,我仍然需要运行 npm rebuild node-sass 让Gulp重新振作起来。
如果你不想更新你的Node版本,那么前一个答案仍然有用 路易 指出,手动编辑节点模块文件不是最佳做法。