缩小并组合html文件中的所有js文件



假设我有

src/index.html

<head>
<script type="text/javascript" src="js/file1.js"></script>
<script type="text/javascript" src="js/file2.js"></script>
<script type="text/javascript" src="js/file3.js"></script>
</head>

build/index.html

<head>
<script type="text/javascript" src="js/script.min.js"></script>
</head>

有没有一种方法可以让一些实用程序自动读取我的html文件,缩小并组合所有js脚本条目,并复制到构建目录。还要删除所有的js条目并替换为输出文件吗?

与CSS相同。请告知。

您的文件夹结构:

gulpfile.js
/src
index.html
/css
/js
/file1.js
/file2.js
/file3.js
/build
index.html
/css
/js

src/index.html中使用以下注释:

<head>
<!--build:js js/scripts.min.js -->
<script type="text/javascript" src="js/file1.js"></script>
<script type="text/javascript" src="js/file2.js"></script>
<script type="text/javascript" src="js/file3.js"></script>
<!-- endbuild -->
<!--build:css css/styles.min.css-->
<link href="css/bootstrap.css" rel="stylesheet" />
<link href="css/mdb.css" rel="stylesheet" />
<link href="css/styles.css" rel="stylesheet" />
<!--endbuild-->
</head>

gullfile.js中编写以下代码:

var gulp = require('gulp');
// This plugin concatenates any number of CSS and JavaScript files into a single file
var useref = require('gulp-useref');
// Requires the gulp-uglify plugin for minifying js files
var uglify = require('gulp-uglify');
var gulpIf = require('gulp-if');
// Requires the gulp-cssnano plugin for minifying css files
var cssnano = require('gulp-cssnano')

gulp.task('build', function () {
return gulp.src('app/*.html')
.pipe(useref())
// Minifies only if it's a JavaScript file
.pipe(gulpIf('*.js', uglify()))
// Minifies only if it's a CSS file
.pipe(gulpIf('*.css', cssnano()))
.pipe(gulp.dest('dist'))
});

在命令行中运行生成任务后,它会自动创建生成文件夹和内部文件。

最新更新