gpt4 book ai didi

javascript - 在 gulp 中注入(inject) js 和 css 时,如何提供对 index.html 的写权限?

转载 作者:搜寻专家 更新时间:2023-10-31 08:15:31 27 4
gpt4 key购买 nike

我在我们的私有(private)服务器中使用 perforce 进行代码 checkin ,因此在生产构建之后(即,当 index.html 为只读时)我的 gulp 任务失败并出现以下错误。

[INFO] [11:30:19] Error: EPERM: operation not permitted, open 'C:\MyProjectDir\index.html'

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

PS: 我用过chmod(777)

Gulp 文件(注入(inject)发生的结束部分)

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

enter image description here

最佳答案

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

示例如下:

gulp.task('remove-readonly-attributes', function() {
require("child_process").exec("attrib -r <dir-name>\*.* /s");
});

关于javascript - 在 gulp 中注入(inject) js 和 css 时,如何提供对 index.html 的写权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38759808/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com