不允许使用EPERM操作的咕噜咕噜复制模具"C:Documents and Settings"



我正在尝试使用grunt-contrib-copy运行一个简单的grunt任务,但它在到达复制任务时立即死亡,带有以下消息:

运行"copy:main" (copy)任务

警告:EPERM,操作不允许'C:Documents and Settings'使用——强制继续

由于警告而中止

I am running:

  • Windows 7 64位(所以C:Documents and Settings不存在)
  • 节点0.10.28(安装在C:nodejs)
  • npm 1.4.9
  • grunt-cli 0.1.13
  • 繁重0.4.5
  • grunt-contrib-copy 0.5.0

我已经在C:nodejs和我的项目文件夹(C:UsersmyusernameDocumentsProgrammingmyprojectname,没有空格或括号)上对"文档和设置"进行了全文搜索,但没有匹配。

我的copy任务定义是:
copy: {
    main: {
        files: [
            {expand: true, cwd: 'src/core', src: '/**', dest: 'src/chrome/'},
            {expand: true, cwd: 'src/core', src: '/**', dest: 'src/firefox/'}
        ]
    }
},

是什么导致了这个错误?

我修复了。问题在于原始代码中的src: '/**'属性。

我把它改成这样,现在它工作得很好:

copy: {
    main: {
        files: [
            {expand: true, cwd: 'src/core', src: '**/*', dest: 'src/chrome/'},
            {expand: true, cwd: 'src/core', src: '**/*', dest: 'src/firefox/'}
        ]
    }
},

/** src属性破坏了它,**/*工作正常。我对Grunt很陌生,所以我没有意识到前面的语法是一个问题;不知怎的,我得到的印象是,它将被视为一条相对路径。

在张贴我的问题之前,我搜索了这个问题的答案。Grunt文档很好地解释了Grunt的globbing模式(*, **等),但它没有提到前置斜杠是一个问题。所以,我想我应该把这个留给其他遇到这种问题的人。我希望它能帮助到别人。

最新更新