Gulp 如何在npm package.json脚本中链接多个命令

wnavrhmk  于 2022-12-08  发布在  Gulp
关注(0)|答案(3)|浏览(189)

我尝试在package.json文件中创建一个脚本,该脚本将启动我的nodemon应用程序,然后触发gulp sass监视
目前,我可以通过运行一个npm launch来启动nodemon,然后在一个单独的终端窗口中运行gulp watch来从我的gulp文件中触发sass手表。
我想在package.json中创建一个脚本命令来完成这两个任务--可以吗?
package.json

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "nodemon app.js",
    "launch": "nodemon app.js && gulp watch"
  },

gulpfile.js

const { src, dest, watch } = require("gulp");
const sass = require('gulp-sass')(require('node-sass'));

function generateCSS(cb) {
    src('./sass/**/*.scss')
        .pipe(sass().on('error', sass.logError))
        .pipe(dest('public/css'));
    cb();
}

function watchFiles(cb) {
    watch('sass/**/**.scss', generateCSS);
}

exports.css = generateCSS;
exports.watch = watchFiles;

编辑:请看下面我的回答,看看我是怎么工作的,灵感来自@cmgchess的回答

yzxexxkh

yzxexxkh1#

您应该能够使用npm-run-all包及其run-p命令来并行执行多个脚本:

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "nodemon app.js",
    "watch": "gulp watch",
    "launch": "run-p start watch"
},

那你就干脆做:

npm launch
xhv8bpkk

xhv8bpkk2#

只需使用&&
package.json

"build": "npm run base && npm run utilities:global && npm run utilities:unstyled && npm run utilities:styled && npm run components && npm run merge:unstyled && npm run merge:styled && npm run rtl && npm run prejss && npm run themes && npm run full",
7gcisfzg

7gcisfzg3#

根据注解中的@cmgchess回答,使用两个“与”符号可以顺序运行命令。然而,也可以选择使用单个“与”符号,这样可以并行运行它们。在本例中,这就是我所需要的:

"launch": "nodemon app.js & gulp watch"

编辑:好的,我第一次运行启动时它运行得很好。但是,随后的启动崩溃了。我现在在多次启动中再次运行它,我还必须做的是切换命令的顺序:

"launchreverse": "gulp watch & nodemon app.js"

相关问题