node.js - Windows 上的 Jenkins + Grunt = 持续的 EBUSY 和 ENOENT 错误

标签 node.js jenkins gruntjs windows-server-2008-r2 yui-compressor

尝试在 Jenkins 中建立一个分支。构建总是失败,通常是在处理一个文件之后,但有时会在文件列表中的随机点进行 min/concat。

错误看起来像:

"ENOENT, no such file or directory 'C:\Program Files (x86)\Jenkins\jobs\grunt-minify-concat Build\workspace\1419346881831"

"EBUSY, resource busy or locked 'C:\Program Files (x86)\Jenkins\jobs\grunt-minify-concat Build\workspace\1419370631016'"

grunt-minify-concat 是该项目的一个分支,我们在其中向 Grunt 添加了几行代码,添加了 CSS/JS 连接和缩小的任务。非常标准的东西。以下是配置的相关部分:

Gruntfile.js

cssmin: {
  dist: {
    expand: true,
    cwd: 'MySite.Web/css/',
    src: ['*.css', '!*.min.css'],
    dest: 'MySite.Web/css/',
    ext: '.min.css'
  }
},

min: {
  dist : {
    expand: true,
    cwd: 'MySite.Web/',
    src : [
      'js/*.js',
      'scripts/*.js',
      '!js/*.min.js',
      '!scripts/*.min.js',
      '!js/jquery*.js',
      '!scripts/jquery*.js'
    ],
    dest : 'MySite.Web/js/',
    ext: '.min.js'
  }
}

grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-copy');
grunt.loadNpmTasks('grunt-exec');
grunt.loadNpmTasks('grunt-sass');
grunt.loadNpmTasks('grunt-yui-compressor');
grunt.loadNpmTasks('grunt-contrib-concat');
grunt.loadNpmTasks('grunt-msbuild');

grunt.registerTask('build', ['sass', 'cssmin', 'min' , 'msbuild:sln', 'copy:libraryDll']);

grunt.registerTask('buildserver', ['version', 'build', 'tag', 'push', 'output']);

grunt.registerTask('default', ['build']);

packages.json

"devDependencies": {
    "node-sass": "~0.8.1",
    "grunt": "~0.4.1",
    "grunt-contrib-watch": "~0.5.3",
    "grunt-sass": "~0.10.0",
    "grunt-yui-compressor": "0.1.1",
    "grunt-contrib-concat": "0.1.3",
    "grunt-exec": "~0.4.3",
    "grunt-msbuild": "~0.1.9",
    "grunt-contrib-copy": "~0.5.0"
},

我已对托管 Jenkins 的 Windows 2008R2 服务器应用了修补程序,解决了路径长度问题。但是,我仍然遇到 EBUSY 问题。 Google 和其他论坛表明这些是 Windows 怪癖,不会很快得到修复。

这正常吗?我通常使用 Ruby,Sprockets 会自动完成所有这些工作。我对 Grunt 和 Jenkins 比较陌生,但这似乎是教科书上的 Grunt-101 东西,应该可以工作。我做错了什么?

最佳答案

您很有可能在 Microsoft Word 或其他随机的非编程编辑器中打开其中一个文件。 Word 锁定对该文件的访问。完全退出 MS Word 并重新构建。为我解决了这个问题。希望对您有帮助!

关于node.js - Windows 上的 Jenkins + Grunt = 持续的 EBUSY 和 ENOENT 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27660750/

相关文章:

Node.js - Winston-loggly 模块抛出 "Cannot read property ' length' of undefined”错误

javascript - Node JS Async Promise.All 问题

apache - jenkins 安装是否需要 Apache Web 服务器

java - 使用Kotlin编译Java代码时报错: generics are not supported in -source 1. 3

javascript - 丑化和混淆之间的区别?多一个安全吗?

c# - 从 C# 应用程序启动 Node.js 服务器

node.js - Access-Control-Allow-Headers 不允许请求 header 字段进行身份验证

java - Jenkins CLI Java API - 指定构建参数

makefile - 什么是生成文件?它与 Gruntfile 或 npm run 有何不同?

node.js - 为什么这个 MongoDB 连接不能在 grunt 脚本中工作?