我正在尝试使用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模式(*
, **
等),但它没有提到前置斜杠是一个问题。所以,我想我应该把这个留给其他遇到这种问题的人。我希望它能帮助到别人。