Javascript 将以下npm脚本转换为gulp任务
我有下面的npm脚本,我想转换成gulp任务Javascript 将以下npm脚本转换为gulp任务,javascript,node.js,npm,gulp,Javascript,Node.js,Npm,Gulp,我有下面的npm脚本,我想转换成gulp任务 "scripts": { "lint": "eslint .", "start": "npm run build:sdk && node .", "posttest": "npm run lint && nsp check", "build:sdk": "./node_modules/.bin/lb-sdk server/server.js ./client/src/app/shar
"scripts": {
"lint": "eslint .",
"start": "npm run build:sdk && node .",
"posttest": "npm run lint && nsp check",
"build:sdk": "./node_modules/.bin/lb-sdk server/server.js ./client/src/app/shared/sdk"
},
现在,我希望一个吞咽任务具有与npm start相同的功能。但我无法加入这些任务,因为它将运行npm运行build:sdk,然后运行node
以下是我迄今为止所做的工作
gulp.task('default', function() {
gulp.run('sdk');
gulp.run('server');
gulp.watch(['./common/models/*.js'], function() {
gulp.run('server');
});
});
gulp.task('server', function() {
if (node) node.kill();
node = spawn('node', ['server/server.js'], {stdio: 'inherit'});
node.on('close', function(code) {
if (code === 8) {
gulp.log('Error detected, waiting for changes...');
}
});
});
gulp.task('sdk', function() {
spawn('./node_modules/.bin/lb-sdk server/server.js ./client/src/app/shared/sdk');
});
堆栈跟踪
Error: spawn ./node_modules/.bin/lb-sdk server/server.js ./client/src/app/shared/sdk ENOENT
at exports._errnoException (util.js:1050:11)
at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32)
at onErrorNT (internal/child_process.js:367:16)
at _combinedTickCallback (internal/process/next_tick.js:80:11)
at process._tickCallback (internal/process/next_tick.js:104:9)
at Module.runMain (module.js:607:11)
at run (bootstrap_node.js:423:7)
at startup (bootstrap_node.js:147:9)
at bootstrap_node.js:538:3
var gulp = require('gulp');
var {spawn} = require('child_process');
var node = null;
gulp.task('default', ['sdk', 'server'], function() {
gulp.watch(['./common/models/*.js'], ['server']);
});
gulp.task('server', function() {
if (node) node.kill();
node = spawn('node', ['server/server.js'], {stdio: 'inherit'});
node.on('close', function(code) {
if (code === 8) {
gulp.log('Error detected, waiting for changes...');
}
});
});
gulp.task('sdk', function() {
spawn('./node_modules/.bin/lb-sdk', ['server/server.js', './client/src/app/shared/sdk', '-q']);
});
代码中有两个问题。首先,将参数作为数组传递给派生的进程
gulp.task('sdk', function() {
spawn('./node_modules/.bin/lb-sdk', ['server/server.js', './client/src/app/shared/sdk', '-q']);
});
其次,您正在使用gulp.run('sdk')代码>,已进行了去润滑。当您修复上述问题时,您一定在控制台中看到了这一点。为此,您必须将依赖项传递给您的默认任务以及gulp.watch()
完成吞咽文件
Error: spawn ./node_modules/.bin/lb-sdk server/server.js ./client/src/app/shared/sdk ENOENT
at exports._errnoException (util.js:1050:11)
at Process.ChildProcess._handle.onexit (internal/child_process.js:193:32)
at onErrorNT (internal/child_process.js:367:16)
at _combinedTickCallback (internal/process/next_tick.js:80:11)
at process._tickCallback (internal/process/next_tick.js:104:9)
at Module.runMain (module.js:607:11)
at run (bootstrap_node.js:423:7)
at startup (bootstrap_node.js:147:9)
at bootstrap_node.js:538:3
var gulp = require('gulp');
var {spawn} = require('child_process');
var node = null;
gulp.task('default', ['sdk', 'server'], function() {
gulp.watch(['./common/models/*.js'], ['server']);
});
gulp.task('server', function() {
if (node) node.kill();
node = spawn('node', ['server/server.js'], {stdio: 'inherit'});
node.on('close', function(code) {
if (code === 8) {
gulp.log('Error detected, waiting for changes...');
}
});
});
gulp.task('sdk', function() {
spawn('./node_modules/.bin/lb-sdk', ['server/server.js', './client/src/app/shared/sdk', '-q']);
});
尝试将参数作为数组传递:spawn('./node_modules/.bin/lb sdk',['server/server.js./client/src/app/shared/sdk'])实际上,我需要一个接一个地运行这两个进程,首先是sdk,然后是服务器,我是说您的spawn
语句调用是错误的。这就是为什么出现错误:spawn./node\u modules/.bin/lb sdk server/server.js./client/src/app/shared/sdk enoint
。参数应该以数组的形式传递。实际上,我需要先运行sdk,然后再运行serverYes,这两个进程都是按照要求的顺序运行的。请参阅附加的屏幕截图。另外,我在answer.address in use中附加了完整的gulpfile错误,因为其他进程正在使用您的端口号。终止其他进程并重新启动。该进程现在正在运行,但sdk无效。它没有创建它应该创建的文件?您期望的文件类型是什么?它正在生成什么?