Javascript gulp和babel与gulp live server
我正在尝试用ES6编写一个express服务器,我正在使用Babel进行传输,但我在使用gulp live server时遇到了问题,因为我无法在更改文件时使其正确重新启动 目前我有以下几点:Javascript gulp和babel与gulp live server,javascript,gulp,ecmascript-6,babeljs,Javascript,Gulp,Ecmascript 6,Babeljs,我正在尝试用ES6编写一个express服务器,我正在使用Babel进行传输,但我在使用gulp live server时遇到了问题,因为我无法在更改文件时使其正确重新启动 目前我有以下几点: // gulpfile.babel.js import gulp from 'gulp'; import gls from 'gulp-live-server'; import babel from 'gulp-babel'; gulp.task('transpile', ['clean:server
// gulpfile.babel.js
import gulp from 'gulp';
import gls from 'gulp-live-server';
import babel from 'gulp-babel';
gulp.task('transpile', ['clean:server'], () => {
gulp.src(['server/**/*.js'])
.pipe(babel())
.pipe(gulp.dest('dist'));
});
gulp.task('server', ['transpile'], () => {
var server = gls.new('dist/app.js');
server.start();
gulp.watch(['server/**/*.js'], ['transpile']);
gulp.watch('dist/app.js', server.start.bind(server)); //error
});
但它不工作,此代码返回一个Gaze
错误:
internal/child_process.js:274
var err = this._handle.spawn(options);
^
TypeError: Bad argument
at TypeError (native)
at ChildProcess.spawn (internal/child_process.js:274:26)
at exports.spawn (child_process.js:339:9)
at Object.exports.start (/Users/oni/Documents/Projects/meanimo/node_modules/gulp-live-server/index.js:134:19)
at Gaze.<anonymous> (/Users/oni/Documents/Projects/meanimo/node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-watcher/index.js:18:14)
at emitTwo (events.js:87:13)
at Gaze.emit (events.js:172:7)
at Gaze.emit (/Users/oni/Documents/Projects/meanimo/node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-watcher/node_modules/gaze/lib/gaze.js:129:32)
at /Users/oni/Documents/Projects/meanimo/node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-watcher/node_modules/gaze/lib/gaze.js:415:16
at StatWatcher._pollers.(anonymous function) (/Users/oni/Documents/Projects/meanimo/node_modules/gulp/node_modules/vinyl-fs/node_modules/glob-watcher/node_modules/gaze/lib/gaze.js:326:7)
internal/child_process.js:274
var err=this.\u handle.spawn(选项);
^
TypeError:参数错误
at TypeError(本机)
在ChildProcess.spawn(内部/child_process.js:274:26)
在exports.spawn(child_process.js:339:9)
在Object.exports.start(/Users/oni/Documents/Projects/meanimo/node_modules/gulp live server/index.js:134:19)
凝视着。(/Users/oni/Documents/Projects/meanimo/node_modules/gulp/node_modules/vinyl fs/node_modules/glob watcher/index.js:18:14)
两点钟(events.js:87:13)
at Gaze.emit(events.js:172:7)
在Gaze.emit(/Users/oni/Documents/Projects/meanimo/node_modules/gulp/node_modules/vinyl fs/node_modules/glob watcher/node_modules/Gaze/lib/Gaze.js:129:32)
at/Users/oni/Documents/Projects/meanimo/node_modules/gulp/node_modules/乙烯基fs/node_modules/glob watcher/node_modules/gaze/lib/gaze.js:415:16
在StatWatcher.(匿名函数)(/Users/oni/Documents/Projects/meanimo/node_modules/gulp/node_modules/乙烯基fs/node_modules/glob watcher/node_modules/gaze/lib/gaze.js:326:7)
错误与传递给watch的回调有关:server.start.bind(server)
,尽管这直接来自gls文档
我看不到我的更改得到反映,而且我似乎找不到任何关于将gls与Transpiler一起使用的文档
请帮助。好的,我已经修复了它,我将为后代分享:出于某种原因,您必须将服务器重启功能包装到另一个函数上,然后自己执行。我认为这与Gaze包装子流程的方式有关
gulp.watch('dist/app.js', () => server.start());
这样就可以了。没有理由
.bind
如果使用箭头函数,只需执行()=>server.start()