一尘不染

使用Grunt的ENOTSUP

node.js

我正在使用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错误。我需要使用这些通配符来包含所有目录和文件。


阅读 270

收藏
2020-07-07

共1个答案

一尘不染

开始部署到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依赖关系。

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

eval $NPM_CMD install

您需要在其后添加以下内容

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

注意; 将/ ** /更改为/ * /可以消除该错误,但是您放弃了递归副本。

2020-07-07