4

如何一次运行两个脚本npm run?首先,我知道 grunt 或 gulp,但我想在没有其他 js 模块的情况下实现它。为了做到这一点,我有这个脚本:

"scripts": {
  "start": "node ./node/www",
  "nodemon": "./node_modules/.bin/nodemon node/www.js -i './e2e-tests/**' -i './node_modules/**' -i '.idea/**' -i './node/log/**' -w './node/server/**/*' -V -L",
  "nodeInspector": "./node_modules/.bin/node-inspector --save-live-edit=true",
  "debug": "node-debug ./node/www.js",
  "ins": "npm run nodeInspector & npm run debug"
}

我想运行,npm run ins但它只会触发节点检查器。 在此处输入图像描述

4

4 回答 4

0

不可能同时运行这两个命令。他们每个人都需要自己的控制台

于 2015-04-25T11:45:32.683 回答
0

我不能让它发生在一条线上,这就是为什么我改用并发的咕噜声:

module.exports = function(grunt) {
    grunt.initConfig({
        concurrent: {
            options: {
                limit: 3,
                logConcurrentOutput: true
            },
            debug: {
                tasks: ['node-inspector', 'nodemon:debug'],
                options: {
                    logConcurrentOutput: true
                }
            }
        },
        nodemon: {
            dev: {
                script: "node/www.js",
                options: {
                    ignore: ['node/public/**'],
                    callback: function (nodemon) {
                        nodemon.on('log', function (event) {
                            console.log(JSON.stringify(event));
                        });

                        // opens browser on initial server start
                        nodemon.on('config:update', function () {
                            console.log("nodemon config:update oldu");
                            // Delay before server listens on port
                            setTimeout(function() {
                                require('open')('http://localhost:3000');
                            }, 1000);
                        });

                        // refreshes browser when server reboots
                        nodemon.on('restart', function () {
                            // Delay before server listens on port
                            setTimeout(function() {
                                //require('fs').writeFileSync('.rebooted', 'rebooted');
                            }, 1000);
                        });
                    }
                }
            },
            debug: {
                script: './node/www.js',
                options: {
                    ignore: ['node/log/*.log','node/public/**','node/views/**','doc/**','e2e-tests/**','.idea'],
                    callback: function (nodemon) {
                        nodemon.on('log', function (event) {
                            console.log("Nodemon debug callback fonksiyonu nodemon.onLog olayı");
                        });

                        // opens browser on initial server start
                        nodemon.on('config:update', function () {
                            console.log("Nodemon debug callback fonksiyonu nodemon.onConfig:Update olayı");
                            // Delay before server listens on port
                            setTimeout(function() {
                                require('open')('http://localhost:3000');
                                require('open')('http://localhost:1337/debug?port=5858');
                            }, 1000);
                        });

                        // refreshes browser when server reboots
                        nodemon.on('restart', function () {
                            console.log("Nodemon debug callback fonksiyonu nodemon.onRestart olayı");
                            // Delay before server listens on port
                            setTimeout(function() {
                                //require('fs').writeFileSync('.rebooted', 'rebooted');
                            }, 1000);
                        });
                    },
                    nodeArgs: ['--debug'],
                    watch: ['Gruntfile.js', 'node/server', 'package.json']
                }
            }
        },
        'node-inspector': {
            custom: {
                options: {
                    'web-port': 1337,
                    'web-host': 'localhost',
                    'debug-port': 5857,
                    'save-live-edit': true,
                    'no-preload': true,
                    'stack-trace-limit': 4,
                    'hidden': ['node_modules']
                }
            }
        }
    });

    require('matchdep').filterDev('grunt-*').forEach(grunt.loadNpmTasks);

    // Çalışması test edildi ve iki pencerede hem test hem uygulama açıyor.
    grunt.registerTask('nodemon-debug', ['concurrent:debug']);

};
于 2015-04-27T21:14:36.533 回答
0

如果node-debug来自node-inspector包,那么你不需要启动一个新node-inspector实例,node-debug它会自动为你启动它。

这是 node-debug 在后台执行的操作(源代码):

  1. 运行节点检查器。
  2. 在调试模式下运行提供的脚本
  3. 打开用户的浏览器,将其指向检查器。

事实上,同时运行node-inspector并且node-debug不会按预期工作,因为第二个node-inspector实例将无法连接到第一个实例已经侦听的同一端口。

于 2015-04-27T07:00:46.840 回答
0

我设法从脚本中运行 node-inspector 和 nodemon 并同时使用

https://www.npmjs.com/package/concurrently

"dev": "npm install && concurrently \"node-inspector --web-port 9090\" \"nodemon --debug .\""

于 2016-03-14T11:42:21.667 回答