我正在尝试创建一个gulpfile.js
来编译scss到css和JS组件到一个主JS文件。但是它不能正常工作。
运行命令gulp
时遇到的问题:
1.它不会将JS组件编译为主JS文件。
1.它编译SCSS,但当我保存任何文件时,git-bash终端会无限执行文件,下面是截图:
这是我的gulpfile.js:
"use strict";
const source = 'assets/';
// Load Modules
const { src, dest, watch, series } = require('gulp');
const sass = require('gulp-sass')(require('sass'));
const postcss = require('gulp-postcss');
const cssnano = require('cssnano');
const terser = require('gulp-terser');
const browsersync = require('browser-sync').create();
// Scss Task
function scssTask() {
return src(`${source}/scss/zaincss.scss`)
.pipe(sass())
.pipe(postcss([cssnano()]))
.pipe(dest(`${source}/css`));
}
// Javascript Task
function jsTask() {
return src(`${source}/js/scripts/*.js`)
.pipe(terser())
.pipe(dest(`${source}/js/scripts/`));
}
// BrowserSync Tasks
function browserSyncServe(done) {
browsersync.init({
server: {
baseDir: '.'
},
injectChanges: true
});
done()
}
function browserSyncReload(done) {
browsersync.reload();
done();
}
// Watch Task
function watchTask() {
watch('*.html', browserSyncReload);
watch(['assets/scss/**/*.scss', 'assets/js/**/*.js'], series(scssTask, jsTask, browserSyncReload));
}
// Default Gulp Task
exports.default = series(
scssTask, jsTask, browserSyncServe, watchTask
);
我在谷歌上搜索了很多,但是我被卡住了。请帮助我。
1条答案
按热度按时间e0bqpujr1#
问题的一部分是您正在查看的目录与存储
js
文件的目录相同:因此,您将文件发送到
${source}/js/scripts/
,但在watch
任务中监视该位置:'assets/js/**/*.js'
。因此,该位置的任何更改都将重新启动该过程。将您的js文件存储在其他地方,而不是您正在监视更改的同一个目录。