我正在使用grunt-contrib-clean尝试在构建结束时删除构建计算机上的_node_modules_文件夹。
但我最近添加了一个新的节点模块依赖项 grunt-sass ,这导致了' clean'任务失败,无法删除文件node-sass\bin\win32-x64-v8-3.14\binding.node
。
我认为节点sass文件仍在使用中,因为如果我注释掉下面显示的grunt.loadNpmTasks('grunt-sass');
,那么清理工作。
Q1:我可以"卸载"一个npm任务,有点像倒转`loadNpmTasks(' grunt-sass')'?
Q2:通过删除' node_modules'进行清理在CI的最后建立正确的事情?
详细信息:
npm list
├─┬ grunt-contrib-clean@0.6.0
│ └── rimraf@2.2.8
gruntfile.js
grunt.loadNpmTasks('grunt-sass');
⋮
clean: {
post: [
'node_modules/grunt-sass' // was 'node_modules', but this is for debugging
]
}
导致错误:
Running "clean:post" (clean) task
ERROR
Warning: Unable to delete "node_modules" file (EPERM, operation not permitted 'c:\myfold
er\node_modules\grunt-sass\node_modules\node-sass\bin\win32-x64-v8-3.14\binding.node').
Use --force to continue.
注意:
有一个 grunt-clean-contrib github issue讨论同样的问题(同一个文件)。它有一些评论说,将 rimraf 从v2.2.7升级到v2.2.8为它们修复了它。但是我使用2.2.8但仍然看到了失败。