Lee*_*rth 4 javascript node.js azure-deployment gruntjs grunt-contrib-concat
我正在使用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'
}
Run Code Online (Sandbox Code Playgroud)
如果我从上面的代码中删除"'src/js/**/*.js',"并执行我的Grunt任务,则不会发生ENOTSUP错误.我需要使用那些通配符来包含所有目录和文件.
小智 17
当我们开始部署到Azure时,我们遇到了这个问题.
问题很可能是由于glob中的一个错误(Grunt有依赖关系).
这个bug早就修复了(参见github issue 205),但遗憾的是NPM上的最新稳定版本是0.4.5(两年前发布) - 它依赖于glob版本3.1.21(当前版本是6.0.4) ).
所以解决这个问题的方法是:
a)通过从github克隆而不是使用npm来获取grunt
要么
b)在npm install之后,导航到/node_modules/grunt并执行npm install glob@^6.0.4 --save以升级已安装的grunt版本的glob依赖项.
在deploy.sh中,npm install可能如下所示:
eval $NPM_CMD install
Run Code Online (Sandbox Code Playgroud)
您需要在它之后添加以下内容
pushd ./node_modules/grunt
eval $NPM_CMD install glob@^6.0.4 --save
popd
Run Code Online (Sandbox Code Playgroud)
注意; 更改/**/到/*/摆脱了错误,但随后你放弃了递归副本.
| 归档时间: |
|
| 查看次数: |
2910 次 |
| 最近记录: |