gpt4 book ai didi

javascript - 有没有办法使用 gulp 删除 require.js define([...]) 包装器的所有实例?

转载 作者:行者123 更新时间:2023-11-29 17:01:34 25 4
gpt4 key购买 nike

我想在没有 require.js 的情况下测试我的应用程序,以查看作为单个串联文件的性能和文件大小。

我正在考虑使用 gulp 获取所有应用 *.js 文件,执行 gulp-replace 以删除 define([...], function (...) { } 的所有实例); 脚本中的包装器,并连接成单个 *.js 文件。

不知道 gulp-replace 是否可以处理这个问题,如果可以,正则表达式会是什么样子?这是 *.js 文件的示例:

'use strict';

define(['file1', 'file2', 'file3'], function (param1, param2, param3) {
//...
//code that should remain after gulp-replace
//...
});

最佳答案

其他人尝试相同的解决方案:

var gulp = require('gulp'),
concat = require('gulp-concat'),
replace = require('gulp-replace'),
uglify = require('gulp-uglify');

gulp.src(['src/**/*.js', '!src/main.conf.js', '!src/**/*_test.js'])
.pipe(replace(/'use strict';/g, ''))
.pipe(replace(/define\s?\(\[.*\],\s?function\s?\(.*\)\s?\{/g, ''))
.pipe(replace(/\}\)\;\s?$/g, ''))
.pipe(concat('app.js'))
.pipe(uglify())
.pipe(gulp.dest('dist'));

假设您只针对 require.js 文件。如果您有编译错误,请尝试使用 gulp-debug 找出哪个文件引发错误。

假设这些文件的加载顺序无关紧要,AngularJS 应用就是这种情况。但如果顺序很重要,您可以在传递给 gulp.src 的数组中设置所需的顺序。

关于javascript - 有没有办法使用 gulp 删除 require.js define([...]) 包装器的所有实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27161597/

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