创建网站时,我曾经单独链接所有脚本,一切正常。我现在正在学习使用gulp,并注意到在连接我的JS文件后,一些脚本停止工作(再次,它们在单独加载时都工作)。脚本在gulp concat后停止工作
我在网上发现的唯一的事情是,我可能不得不以某种顺序连接文件。我试图改变gulpfile.js任务的顺序无济于事。我试图在gulpfile.js任务中逐个删除文件无济于事。
此外,我将Modernizr和JQuery始终保存在头文件中并单独加载(它们不与其他文件连接),而连接的JS文件位于页脚中,因此在加载后。
HTML文件看起来是这样的:
<!DOCTYPE html>
<html>
<head>
<meta ...>
<link...>
<script src="https://code.jquery.com/jquery-3.1.0.min.js"></script>
<script src="https://code.jquery.com/jquery-migrate-3.0.0.min.js"></script>
<script src="assets/scripts/modernizr.js"></script>
<title>Some Title</title>
</head>
<body>
WEBSITE CONTENT
<script src="assets/scripts/scripts.min.js"></script> /*Concatenated file*/
</body>
</html>
我一饮而尽任务(gulpfile.js)看起来像这样(我已经分开脚本数组来连接,以便你们可以看到文件):
gulp.task('js', function(){
return gulp.src([
'assets/scripts/base/bootstrap.js',
'assets/scripts/base/retina.js',
'assets/scripts/base/smoothscroll.js',
'assets/scripts/base/waypoints.js',
'assets/scripts/base/wow.js',
'assets/scripts/plugins/bootstrap.filestyle.js',
'assets/scripts/plugins/jquery.counterup.js',
'assets/scripts/plugins/jquery.matchHeight.js',
'assets/scripts/plugins/lightcase.js',
'assets/scripts/plugins/slick.js',
'assets/scripts/plugins/global.js'
])
.pipe(plumber({
errorHandler: function (error) {
console.log(error.message);
this.emit('end');
}}))
.pipe(concat('scripts.js'))
.pipe(babel())
.pipe(gulp.dest('assets/scripts/'))
.pipe(rename({suffix: '.min'}))
.pipe(uglify())
.pipe(gulp.dest('assets/scripts/'))
.pipe(browserSync.reload({stream:true}))
});
现在,我注意到脚本停止工作是在lighcase.js(灯箱),jquery.matchHeight.js(匹配柱高度)和slick.js(滑块)。
编辑:我的控制台上没有错误。只有消息“JQMIGRATE:Migrate is installed,version 3.0.0”。
任何帮助,将不胜感激。经过一个星期试图找到这个问题背后的逻辑,我放弃了哈哈。帮助新手!
那么,他们是否默默地“停止工作”?或者可能会在控制台中引发一些错误? – zerkms
我在控制台上唯一的消息是:JQMIGRATE:Migrate已安装,版本3.0.0。 但没有红色错误警报。 – user3163410
那么,请验证您的脚本是否正在加载。然后在入口点设置一个断点等。 – matmo