|
1 | 1 | #!/usr/bin/env node |
2 | 2 |
|
3 | 3 | var dev = require('..') |
4 | | -var program = require('commander') |
5 | | -var resolveMain = require('../lib/resolveMain') |
| 4 | +var minimist = require('minimist') |
6 | 5 |
|
| 6 | +function getFirstNonOptionArgIndex(args) { |
| 7 | + for (var i=2; i < args.length; i++) { |
| 8 | + if (args[i][0] != '-') return i; |
| 9 | + } |
| 10 | + return args.length; |
| 11 | +} |
7 | 12 |
|
8 | | -program |
9 | | - .version(require('../package.json').version) |
10 | | - .option('--all-deps', 'watch the whole dependency tree') |
11 | | - .option('--no-deps', 'watch only the project’s own files and linked modules' + |
12 | | - ' (via `npm link`)') |
13 | | - .option('--dedupe', 'dedupe modules dynamically') |
14 | | - .arguments('<script> [arguments...]') |
15 | | - .action(function (script, scriptArgs) { |
16 | | - var wrapper = resolveMain(__dirname + '/../lib/wrap.js') |
| 13 | +var scriptIndex = getFirstNonOptionArgIndex(process.argv) |
| 14 | +var script = process.argv[scriptIndex] |
| 15 | +var scriptArgs = process.argv.slice(scriptIndex + 1) |
| 16 | +var devArgs = process.argv.slice(2, scriptIndex) |
17 | 17 |
|
18 | | - dev(wrapper, script, scriptArgs || [], { |
19 | | - allDeps: program.allDeps || false, |
20 | | - noDeps: program.noDeps || false, |
21 | | - dedupe: program.dedupe || false, |
22 | | - }) |
23 | | - }) |
| 18 | +var nodeArgs = [] |
| 19 | +var opts = minimist(devArgs, { |
| 20 | + boolean: ['all-deps', 'no-deps', 'dedupe'], |
| 21 | + unknown: function(arg) { |
| 22 | + nodeArgs.push(arg) |
| 23 | + } |
| 24 | +}) |
24 | 25 |
|
25 | | -program.parse(process.argv) |
| 26 | +if (!script) { |
| 27 | + console.log('Usage: node-dev [options] script [arguments]\n') |
| 28 | + process.exit(1) |
| 29 | +} |
| 30 | + |
| 31 | +dev(script, scriptArgs, nodeArgs, opts) |
0 commit comments