Javascript Gulp任务以排除写入Index.html文件时的特定js文件

Javascript Gulp任务以排除写入Index.html文件时的特定js文件,javascript,gulp,Javascript,Gulp,您好,我是Gulp新手,我的要求是在build dist任务中将特定的js文件写入index.html时排除。以下是写入index.html时要排除的文件。 下面是gulpfile.js:根据我的要求,我想gulp.task('full-build-dist',['build-dist']应该修改为指定前缀为(!)的js文件,但不知道实际代码,因此我们将感谢您的帮助 'use strict'; /*** DO NOT MODIFY THIS FILE ***/ let gulp = req

您好,我是Gulp新手,我的要求是在build dist任务中将特定的js文件写入index.html时排除。以下是写入index.html时要排除的文件。

下面是gulpfile.js:根据我的要求,我想gulp.task('full-build-dist',['build-dist']应该修改为指定前缀为(!)的js文件,但不知道实际代码,因此我们将感谢您的帮助

'use strict';

/*** DO NOT MODIFY THIS FILE ***/

let gulp = require('gulp');
let fs = require('fs-extra');
let inject = require('gulp-inject');
let sequence = require('run-sequence');
/**
 * Load the default configuration from the ng1-template-gulp package.
 */
let ng1TemplateGulp = require('ng1-template-gulp');
let config = ng1TemplateGulp.config;
let utils = ng1TemplateGulp.utils;


/**
 * Once the config is loaded from the ng1-template-gulp package, call the local gulp.config module
 * to customize the config as per the project requirements.
 */
utils.compileTsFile('./gulp.config.ts', config.folders.build);
require(`${config.folders.build}gulp.config`)(config);


config.options.bowerJson = require(`${config.folders.root}bower.json`);

gulp.task('load_rev_manifest', done => {
    config.revManifest = require(`${config.folders.distBuild}rev-manifest.json`);
    done();
});


gulp.task('full-build-dist', ['build-dist'], () => {
    utils.log('Creating a new json file for cms to use');
    var fileContent = fs.readFileSync(`${config.folders.distBuild}index.html`, "utf8");
    let array = fileContent.split('<script');
    let result = [];
    for (let i = 0; i < array.length; i++) {
        if (i == 0 || i == array.length - 1 || i == array.length - 2) {
            continue;
        }
        let elem = array[i];
        let tempResult = elem.substring(elem.indexOf('js/') + 3, elem.indexOf('</script>') - 2);
        result.push(tempResult);
    }
    utils.log(`Element :${config.folders.distBuild}` + JSON.stringify(result));
    fs.writeJson(`${config.folders.distBuild}library.json`, result, function (err) {
        // console.log(err)
    })
});
var bless = require('gulp-bless');
gulp.task('split', () => {
    utils.log('css only' + `${config.folders.distBuild}css`);
    return gulp.src(`${config.folders.distBuild}css/*.css`)
        .pipe(bless({
            imports: false,
            suffix: '-part'
        }))
        .pipe(gulp.dest(`${config.folders.distBuild}css`));
});



gulp.task('complete-build', function () {

    sequence('clean', 'build-dist', 'copy-files-upload', 'copy-files-upload1', 'copy-files-upload2', 'copy-files-upload3', 'copy-files-add', 'split', 'add-css');

});

gulp.task('add-css', function () {
    let cssFiles = `${config.folders.distBuild}css/*part1.css`;
    let cssSrc = gulp.src(cssFiles, { read: false });
    let configOptions = {
        starttag: '<!-- inject:css:def -->',
        relative: true,
        removeTags: true
    };
    let injectTask = utils.src(`${config.folders.distBuild}index.html`, 'local-inject')
        .pipe(inject(cssSrc, configOptions));
    injectTask = injectTask.pipe(gulp.dest(`${config.folders.distBuild}`));
    return injectTask;
});

gulp.task('copy-files-upload', function () {
    let jsFiles = [`${config.folders.bower}ng-file-upload-shim/*`];
    return gulp.src(jsFiles).pipe(gulp.dest(`${config.folders.distBuild}js/ng-file-upload-shim`));

});
gulp.task('copy-files-upload1', function () {
    let jsFiles1 = [`${config.folders.bower}ng-file-upload/*`];
    return gulp.src(jsFiles1).pipe(gulp.dest(`${config.folders.distBuild}js/ng-file-upload`));

});
gulp.task('copy-files-upload2', function () {
    let jsFiles2 = [`${config.folders.client}/customjs/fileuploader.js`];
    return gulp.src(jsFiles2).pipe(gulp.dest(`${config.folders.distBuild}js`));

});
gulp.task('copy-files-upload3', function () {
    let jsFiles2 = [`${config.folders.client}/customjs/tealeaf*.js`];
    console.log('jsFiles2', jsFiles2);
    return gulp.src(jsFiles2).pipe(gulp.dest(`${config.folders.distBuild}js`));

});
gulp.task('copy-files-add', function () {
    let jsFiles = [`${config.folders.distBuild}js/ng-file-upload/ng-file-upload-shim.js`, `${config.folders.distBuild}js/ng-file-upload/ng-file-upload.js`, `${config.folders.distBuild}js/fileuploader.js`, `${config.folders.distBuild}js/tealeaf*.js`];
    let jsSrc = gulp.src(jsFiles, { read: false });
    let configOptions = {
        starttag: '<!-- inject:js:upload -->',
        relative: true,
        removeTags: true
    };
    let injectTask = utils.src(`${config.folders.distBuild}index.html`, 'local-inject')
        .pipe(inject(jsSrc, configOptions));
    injectTask = injectTask.pipe(gulp.dest(`${config.folders.distBuild}`));
    return injectTask;
});
“严格使用”;
/***不要修改此文件***/
让吞咽=需要(“吞咽”);
设fs=require('fs-extra');
let inject=require('gulp-inject');
let sequence=require('run-sequence');
/**
*从ng1模板gulp包加载默认配置。
*/
设ng1TemplateGulp=require('ng1-template-gulp');
让config=ng1TemplateGulp.config;
设utils=ng1TemplateGulp.utils;
/**
*从ng1模板gulp包加载配置后,调用本地gulp.config模块
*根据项目要求自定义配置。
*/
utils.compileTsFile('./gulp.config.ts',config.folders.build);
需要(`${config.folders.build}gulp.config`)(配置);
config.options.bowerJson=require(`${config.folders.root}bower.json`);
吞咽任务('load\u rev\u manifest',done=>{
config.revManifest=require(`${config.folders.distBuild}rev manifest.json`);
完成();
});
吞咽任务('full-build-dist',['build-dist',()=>{
log('创建一个新的json文件供cms使用');
var fileContent=fs.readFileSync(`${config.folders.distBuild}index.html`,“utf8”);
让数组=fileContent.split(“”,
亲戚:对,,
removeTags:对
};
让injectTask=utils.src(`${config.folders.distBuild}index.html`,'localinject')
.管道(注入(jsSrc,配置选项));
injectTask=injectTask.pipe(gulp.dest(`${config.folders.distBuild}');
返回任务;
});

这是我朋友为gulp制作的一个脚本,它只将两个脚本捆绑在一起

const gulp = require('gulp');
const eslint = require('gulp-eslint');
const babel = require('gulp-babel');
const sourcemaps = require('gulp-sourcemaps');
const uglify = require('gulp-uglify');
const browserify = require('browserify');
const babelify = require('babelify');

gulp.task('bundle-js', function() {
  let files = ['main', 'about'];
  return merge(files.map(function(file) {
    return browserify({
      entries: './src/js/' + file + '.js'
    })
    .transform(babelify)
    .bundle()
    .pipe(source(file + '.js'))
    .pipe(buffer())
    .pipe(sourcemaps.init())
    .pipe(uglify())
    .pipe(sourcemaps.write())
    .pipe(gulp.dest('build/js'))
  }));
});

这段方便的代码将使一切都变得丑陋和原始。不要抱怨,因为这正成为web开发人员的一种反模式。我可能错过了一个必需的包,但如果我错过了,那么错误很容易理解。:D

我的文章中提供的gulpfile已经很好地工作了,我需要修改它,以将指定的两个js文件从写入我的文件中排除ndex.html文件。因此,我正在寻找的帮助是了解占位符和要合并到我的gulpfile中的代码,以便从index.html中排除这两个js文件。啊,我明白你的意思。我主要是说,你的js对我来说有点健壮。你能指出你在脚本中的位置吗?是结果吗?push(tempResult)如果是这样的话,我们能否在将结果推送到js对象之前映射/过滤结果?