javascript - 如何在后台同时运行多个 Grunt 脚本?
问题描述
grunt.registerTask('dev', ['browserSync:dev', 'webpack', 'watch']);
这是我在开发时需要运行的 Grunt-Dev 脚本。它运行做三件事。
1) 观察 SCSS 文件的变化,然后将它们编译成 CSS (watch + sass)
2) 使用内置重新加载的 BrowserSync 启动 liveserver
3) 运行一个 webpack 脚本来监视 js 文件的变化,并在有变化时将它们重新编译成 bundle.js
所有这些工作,但是,我不想每次都打开三个命令提示符并且必须输入每个命令。相反,让它们都使用一个 grunt 脚本运行是目标
它的 75% 工作。我可以同时使用 SASS/watch + BrowserSync
grunt.registerTask('dev', ['browserSync:dev', 'watch']);
这是因为 BrowserSync 有一个watchtask: true选项,这意味着它将在“后台”运行。但是添加第三个脚本(webpack),我需要 watch 或 webpack 才能有这样的选项。因为现在,无论我将 webpack 脚本放在哪里,它或监视脚本都会充当其他脚本运行的墙
这是完整的 Grunt 脚本供参考
webpack: {
myconfig: function() {
return {
entry: './app/src/js/App.jsx',
output: {
filename: 'bundle.js',
path: path.resolve(__dirname, 'app/src')
},
watch: true,
mode: 'production',
devtool: "source-map"
};
}
},
browserSync: {
dev : {
bsFiles: {
src : ['app/**/*', '!app/src/js/*.js', '!**/*.scss']
},
options: {
server: {
baseDir: "./app"
},
watchTask: true,
notify: false
}
}
},
sass: {
dist: {
options:{
},
files: [{
expand: true,
cwd: 'app/scss',
src: ['theme.scss'],
dest: 'app/',
ext: '.css'
}]
}
},
watch: {
scripts: {
files: '**/*.scss',
tasks: ['sass'],
options: {
spawn: false
},
},
},
解决方案
推荐阅读
- python - Gekko:MINLP - 找不到错误 options.json 文件
- ros - ROS AMCL - 在凉亭/set_model_state 之后停止粒子均匀地重新分布
- flutter - 如何更改布尔字段值并在颤动中保存到数据库?
- c# - WPF TextBlock 的内存泄漏问题
- c - tcpdump 触发 netlink IFF_RUNNING/链接更改
- javascript - 使用 onclick 更改 h2
- docker - 启动容器进程导致“exec:\”./boot.sh\“:权限被拒绝”:未知
- linux - 从 url 中间的文件中添加文本
- c++ - 跨多个文件使用结构
- python - 如何将批处理命令的结果存储在哪里?