Node.js 使用nodemon命令运行npm脚本

Node.js 使用nodemon命令运行npm脚本,node.js,npm,nodemon,Node.js,Npm,Nodemon,我正在测试Apollo的GraphQL服务器以及将nodemon集成到其中的内容。以下是示例文件结构: build/ src/ server.js 这里我的npm脚本如下所示 "scripts": { "start": "babel --presets es2015,stage-2 server.js -d build/ && node build/server.js", "dev": "nodemon server.js" // Sample code her

我正在测试Apollo的GraphQL服务器以及将nodemon集成到其中的内容。以下是示例文件结构:

build/
src/
server.js
这里我的npm脚本如下所示

"scripts": {
   "start": "babel --presets es2015,stage-2 server.js -d build/  &&  node build/server.js",
   "dev": "nodemon server.js" // Sample code here
}
npm run start
将使用babel将ES6代码转换为
build/server.js
,并执行它。这将正确启动服务器。

我想要的是监视
server.js
src/
中的更改,如果发生更改,请重新启动服务器。如果发生任何更改,我想在这里执行
npm run start
命令。根据我的需要,正确的“nodemon”命令是什么。如果我可以使用
npm run dev
like命令来开始使用nodemon的开发,那就更好了。

您可以使用它来查看特定文件夹中的任何更改,然后命令它做一些事情。 对于您的示例,您也希望将代码转换为es6。所以它也需要和。如果你愿意,你可以加入。因此,您可以简单地将下面的代码放在gulpfile.js中

gulp.task('build-es2015', () => {
    return gulp.src('server.js')
        .pipe(babel({
            presets: ['es2015']
        }))
        .pipe(gulp.dest('build'));
});
gulp.task('watch', () => {
    gulp.watch(['./app/*.js'], ['build-es2015'])
})
gulp.task('server', () => {
  nodemon({
    script: 'build/server.js',
    ext: 'js',
    ignore: [
      'server.js',
      'node_modules/**',
      'test/**',
      'build/**'
    ]
  })
  .on('restart', () => { console.log(`Server restarted!`) })
})
gulp.task('dev', ['server', 'watch'])
const gulp       = require('gulp')
const babel      = require('gulp-babel')
const nodemon    = require('gulp-nodemon')
基本上,“监视”任务将继续监视特定文件。保存后,将执行任务“build-es2015”以转换为es6

然后是nodemon,它需要在gulpfile.js上运行

gulp.task('build-es2015', () => {
    return gulp.src('server.js')
        .pipe(babel({
            presets: ['es2015']
        }))
        .pipe(gulp.dest('build'));
});
gulp.task('watch', () => {
    gulp.watch(['./app/*.js'], ['build-es2015'])
})
gulp.task('server', () => {
  nodemon({
    script: 'build/server.js',
    ext: 'js',
    ignore: [
      'server.js',
      'node_modules/**',
      'test/**',
      'build/**'
    ]
  })
  .on('restart', () => { console.log(`Server restarted!`) })
})
gulp.task('dev', ['server', 'watch'])
const gulp       = require('gulp')
const babel      = require('gulp-babel')
const nodemon    = require('gulp-nodemon')
以上内容将继续关注build/server.js’。无论何时更改,nodemon都会自动重新启动服务器

还有gulpfile.js的最后一块

gulp.task('build-es2015', () => {
    return gulp.src('server.js')
        .pipe(babel({
            presets: ['es2015']
        }))
        .pipe(gulp.dest('build'));
});
gulp.task('watch', () => {
    gulp.watch(['./app/*.js'], ['build-es2015'])
})
gulp.task('server', () => {
  nodemon({
    script: 'build/server.js',
    ext: 'js',
    ignore: [
      'server.js',
      'node_modules/**',
      'test/**',
      'build/**'
    ]
  })
  .on('restart', () => { console.log(`Server restarted!`) })
})
gulp.task('dev', ['server', 'watch'])
const gulp       = require('gulp')
const babel      = require('gulp-babel')
const nodemon    = require('gulp-nodemon')
包括gulp命令需要执行的任务

$ gulp dev
或者使用npm命令

"scripts": {
  "start": "gulp dev"
}
因此,您也可以
npm运行start

不要忘记在gulpfile.js中要求所有包

gulp.task('build-es2015', () => {
    return gulp.src('server.js')
        .pipe(babel({
            presets: ['es2015']
        }))
        .pipe(gulp.dest('build'));
});
gulp.task('watch', () => {
    gulp.watch(['./app/*.js'], ['build-es2015'])
})
gulp.task('server', () => {
  nodemon({
    script: 'build/server.js',
    ext: 'js',
    ignore: [
      'server.js',
      'node_modules/**',
      'test/**',
      'build/**'
    ]
  })
  .on('restart', () => { console.log(`Server restarted!`) })
})
gulp.task('dev', ['server', 'watch'])
const gulp       = require('gulp')
const babel      = require('gulp-babel')
const nodemon    = require('gulp-nodemon')