首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在gulp中注入js和css时,如何向index.html提供写权限?

在gulp中注入js和css时,如何向index.html提供写权限?
EN

Stack Overflow用户
提问于 2016-08-04 14:18:32
回答 1查看 441关注 0票数 4

我在我们的私有服务器中使用perforce进行代码检查,所以在产品构建之后(例如,当index.html是只读的),我的gulp任务失败,并出现以下错误。

代码语言:javascript
复制
[INFO] [11:30:19] Error: EPERM: operation not permitted, open 'C:\MyProjectDir\index.html'

一旦我签出文件或取消选中只读属性(使用windows框),gulp任务就会成功完成。有没有办法通过gulp任务更改它的权限,以避免这种手动干预?

PS:我用过chmod(777)

Gulp文件(注入发生的末尾部分)

代码语言:javascript
复制
var gulp = require('gulp'),
    gutil = require('gulp-util'),
    uglify = require('gulp-uglify'),
    minify = require('gulp-minify-css'),
    concatVendor = require('gulp-concat-vendor'),
    concatCss = require('gulp-concat-css'),
    rev = require('gulp-rev'),
    clone = require('gulp-clone'),
    inject = require('gulp-inject'),
    del = require('del'),
    runSequence = require('run-sequence'),
    chmod = require('gulp-chmod'),
    series = require('stream-series'),
    ngAnnotate = require('gulp-ng-annotate'),
    rename = require("gulp-rename");
...
gulp.task('index', ['gulp-js-files', 'gulp-css-files'], function() {
    var target = gulp.src(mainIndexFile);
    return target.pipe(chmod(777)).pipe(inject(series(vendorCss, customCss, vendorJs), { ignorePath: ['MyProjectDir'], addRootSlash: false }))
        .pipe(gulp.dest(mainDestination));
});
...

在管理员模式下运行cmd

EN

回答 1

Stack Overflow用户

发布于 2016-08-26 14:31:54

一种选择是使用gulp-exec通过attrib -r删除只读标志,然后在注入数据后使用attrib +r重新设置它(如果需要)。

下面是一个示例:

代码语言:javascript
复制
gulp.task('remove-readonly-attributes', function() {
    require("child_process").exec("attrib -r <dir-name>\*.* /s");
});
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38759808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档