使用Grunt ENOTSUP

我正在使用Grunt来缩小和连接AngularJS Web应用程序的文件。 我们的来源是文件共享,我通过映射的驱动器连接到它。 每当Grunt运行我的源代码目录时,我的一个concat任务出现错误。 错误是“ENOTSUP,在套接字上不支持操作”。 如果我复制源,本地,Grunt运行,罚款。 为了我们的源代码控制,我需要Grunt来监视和运行映射的驱动器。 concat任务使用grunt-contrib-concat。 我已经尝试重新安装Node,并将grunt-contrib-concat回滚到版本0.4.0。 这没有用。 任何帮助/想法将不胜感激。

编辑:

Grunt中给出错误的代码是:

jscustom: { src: ['src/js/*.js', 'src/js/**/*.js', 'build/temp/templates.js'], dest: 'build/temp/custom.js' } 

如果我从上面的代码中删除“'src / js / ** / *。js',并执行我的Grunt任务,ENOTSUP错误不会发生。 我需要使用这些通配符来包含所有的目录和文件。

当我们开始部署到Azure时,我们遇到了这个问题。

这个问题很可能是由glob中的一个错误引起的(Grunt有一个依赖关系)。

这个bug自修复以来已经很久了(见github问题205 ),但不幸的是最新的NPM稳定版本是0.4.5(两年前发布) – 依赖于glob版本3.1.21(当前版本是6.0.4 )。

所以修复这个要么是:

a)通过github而不是使用npm来克隆grunt

要么

b)安装/node_modules/grunt npm之后,导航到/node_modules/grunt并执行一个npm install glob@^6.0.4 --save升级安装的grunt版本的glob依赖项。

在您的deploy.sh中,npm安装可能如下所示:

 eval $NPM_CMD install 

你需要在它后面添加以下内容

 pushd ./node_modules/grunt eval $NPM_CMD install glob@^6.0.4 --save popd 

注意; 改变/ ** /到/ * /摆脱错误,但是你放弃了recursion的副本。