没办法,特殊情况就得用下Windows。
下面要问的情况在Linux下是没问题的。
Windows7下安装的Node.js v0.8.0,在Gruntfile.js的目录下执行:
grunt
# 或其他带有具体任务的命令
grunt task1
都提示类似如下信息:
Loading "Gruntfile.js" tasks...ERROR
>> TypeError: Object #<Object> has no method 'forEach'
Warning: Task "default" not found. Use --force to continue.
Aborted due to warnings.
即使用--force
也一样。Gruntfile.js
文件中是有forEach
,但这样公共的文件在Ubuntu下就可以正常执行。
而且Node.js的版本还是v0.10.26。
不外乎用了平台相关的东西,或者两边跑的代码压根不一样
关键是,不贴代码,只告诉我Gruntfile.js里有forEach,这叫我怎么找问题呢……
同样的问题啊,求解决。纠结了很久了...
题主啊,一年前有人遇到一样的问题在 Github 发了 issue:https://github.com/gruntjs/grunt/issues/610
你先检查一下和他的情况类似不?(升级 jshint,如果你装了的话)
如果和 jshint 没关系,那我建议你把你的 Gruntfile
做个排查,说不定是哪个插件造成的,然后再试试升级之类的办法。
实在找不出原因,把 Gruntfile
贴上 Gist 再来,或者直接发 issue。
另外你的 node 是不是老了点啊,换个版本试试,折腾呗~我在公司就有用的 win7(集成测试),但我是不升级就不舒服斯基,只要不是依赖不允许,我都用最新版本,所以我没遇到过和你一样的问题呀。