我正在使用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依赖于此错误)引起的。
此错误早已得到修复(请参见github问题205),但是不幸的是,NPM上的最新稳定版本是0.4.5(两年前发布)-依赖于glob版本3.1.21(当前版本是6.0.4) )。
因此,解决方法是:
a)通过从github克隆而不是使用npm获得咕get声
要么
b)在安装npm之后,导航至/node_modules/grunt并执行,npm install glob@^6.0.4 --save以升级已安装grunt版本的glob依赖关系。
/node_modules/grunt
npm install glob@^6.0.4 --save
在您的deploy.sh中,npm安装可能如下所示:
eval $NPM_CMD install
您需要在其后添加以下内容
pushd ./node_modules/grunt eval $NPM_CMD install glob@^6.0.4 --save popd
注意; 将/ ** /更改为/ * /可以消除该错误,但是您放弃了递归副本。