使用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的副本。