我正在使用 Grunt 来缩小和连接 AngularJS 网络应用程序的文件。我们的源位于文件共享上,我通过映射驱动器连接到它。每当 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 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
来升级 glob 依赖安装的 grunt 版本。
在您的 deploy.sh 中,npm 安装可能如下所示:
eval $NPM_CMD install
您需要在其后添加以下内容
pushd ./node_modules/grunt
eval $NPM_CMD install glob@^6.0.4 --save
popd
注意;将/**/更改为/*/消除了错误,但随后您放弃了 递归副本。
关于javascript - 使用 Grunt 的 ENOTSUP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30199739/