Skip to content

Commit c167600

Browse files
committed
Merge branch '3.0'
2 parents e91d8f2 + 3a0c858 commit c167600

38 files changed

Lines changed: 626 additions & 504 deletions

.eslintrc

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"extends": [
3+
"airbnb/legacy"
4+
],
5+
"rules": {
6+
"comma-dangle": [2, "never"],
7+
"eqeqeq": 0,
8+
"func-names": 0,
9+
"guard-for-in": 0,
10+
"one-var": [2, "never"],
11+
"padded-blocks": 0,
12+
"vars-on-top": 0,
13+
"no-console": 0,
14+
"no-param-reassign": 0,
15+
"no-use-before-define": 0
16+
}
17+
}

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
.DS_Store
2+
.vagrant
23
node_modules
34
npm-debug.log

.jshintrc

Lines changed: 0 additions & 21 deletions
This file was deleted.

.travis.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
sudo: false
12
language: node_js
23
node_js:
3-
- 0.10
4+
- 4.2

CHANGELOG.md

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,25 @@
11
# node-dev
22

3+
## 3.0.0 / 2016-01-29
4+
5+
- Add `--respawn` to keep watching after a process exits. See #104.
6+
- Don't terminate the child process if a custom `unchaughtException` handler is registered. See #113.
7+
- Handle `-r` and `--require` node options correctly. See #111.
8+
- Add support for passing options to transpilers. See #109.
9+
- Handle `--no-deps` correctly. See #108.
10+
- Switch to airbnb code style
11+
- Use greenkeeper.io to keep dependencies up to date
12+
13+
14+
## 2.7.1 / 2015-08-21
15+
16+
- Add `--poll` to fix #87
17+
- Switch from [`commander`][npm-commander] to [`minimist`][npm-minimist]
18+
- Fix issues introduced in 2.7.0. See #102 for details.
19+
320
## 2.7.0 / 2015-08-17
421

5-
- [#88]: Support ignoring file paths, e.g. for universal (isomorphic) apps. See
22+
- Support ignoring file paths, e.g. for universal (isomorphic) apps. See
623
[`README`][README-ignore-paths] for more details.
724
- Use [`commander`][npm-commander] for CLI argument parsing instead of custom code.
825
- Extract [`LICENSE`][LICENSE] file.
@@ -12,9 +29,8 @@
1229

1330
[LICENSE]: LICENSE
1431
[npm-commander]: https://www.npmjs.com/package/commander
32+
[npm-minimist]: https://www.npmjs.com/package/minimist
1533
[npm-tap]: https://www.npmjs.com/package/tap
1634
[npm-touch]: https://www.npmjs.com/package/touch
1735
[README]: README.md
1836
[README-ignore-paths]: README.md#ignore-paths
19-
20-
[#88]: https://github.com/fgnass/node-dev/issues/88

README.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,23 @@ This means that if you run `node-dev foo.coffee` node-dev will do a
116116
__Note:__ If you want to use coffee-script < 1.7 you have to change the
117117
setting to `{"coffee": "coffee-script"}`.
118118

119+
Options can be passed to a transpiler by providing an object containing
120+
`name` and `options` attributes:
121+
122+
```json
123+
{
124+
"js": {
125+
"name": "babel/register",
126+
"options": {
127+
"only": [
128+
"lib/**",
129+
"node_modules/es2015-only-module/**"
130+
]
131+
}
132+
}
133+
}
134+
```
135+
119136
### Graceful restarts
120137

121138
Node-dev sends a `SIGTERM` signal to the child-process if a restart is required.

Vagrantfile

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
$script = <<SCRIPT
2+
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.30.2/install.sh | bash
3+
echo "source /home/vagrant/.nvm/nvm.sh" >> /home/vagrant/.profile
4+
source /home/vagrant/.profile
5+
nvm install stable
6+
SCRIPT
7+
8+
Vagrant.configure("2") do |config|
9+
config.vm.box = "ubuntu/trusty64"
10+
config.vm.provision "shell", privileged: false, inline: $script
11+
end

bin/node-dev

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,46 @@
11
#!/usr/bin/env node
22

3-
var dev = require('..')
4-
var minimist = require('minimist')
3+
var dev = require('..');
4+
var minimist = require('minimist');
55

66
function getFirstNonOptionArgIndex(args) {
7-
for (var i=2; i < args.length; i++) {
7+
for (var i = 2; i < args.length; i++) {
88
if (args[i][0] != '-') return i;
99
}
1010
return args.length;
1111
}
1212

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)
13+
function removeValueArgs(args, names) {
14+
var i = 0;
15+
var removed = [];
16+
while (i < args.length) {
17+
if (~names.indexOf(args[i])) {
18+
removed = removed.concat(args.splice(i, 2));
19+
} else {
20+
i++;
21+
}
22+
}
23+
return removed;
24+
}
25+
26+
var nodeArgs = removeValueArgs(process.argv, ['-r', '--require']);
27+
28+
var scriptIndex = getFirstNonOptionArgIndex(process.argv);
29+
var script = process.argv[scriptIndex];
30+
var scriptArgs = process.argv.slice(scriptIndex + 1);
31+
var devArgs = process.argv.slice(2, scriptIndex);
1732

18-
var nodeArgs = []
1933
var opts = minimist(devArgs, {
20-
boolean: ['all-deps', 'deps', 'dedupe', 'poll'],
34+
boolean: ['all-deps', 'no-deps', 'dedupe', 'poll', 'respawn'],
2135
default: { deps: true },
22-
unknown: function(arg) {
23-
nodeArgs.push(arg)
36+
unknown: function (arg) {
37+
nodeArgs.push(arg);
2438
}
25-
})
39+
});
2640

2741
if (!script) {
28-
console.log('Usage: node-dev [options] script [arguments]\n')
29-
process.exit(1)
42+
console.log('Usage: node-dev [options] script [arguments]\n');
43+
process.exit(1);
3044
}
3145

32-
dev(script, scriptArgs, nodeArgs, opts)
46+
dev(script, scriptArgs, nodeArgs, opts);

lib/cfg.js

Lines changed: 31 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,49 @@
1-
var fs = require('fs')
2-
var path = require('path')
1+
var fs = require('fs');
2+
var path = require('path');
33

44
function read(dir) {
5-
var f = path.resolve(dir, '.node-dev.json')
6-
return fs.existsSync(f) ? JSON.parse(fs.readFileSync(f)) : {}
5+
var f = path.resolve(dir, '.node-dev.json');
6+
return fs.existsSync(f) ? JSON.parse(fs.readFileSync(f)) : {};
77
}
88

99
function resolvePath(unresolvedPath) {
10-
return path.resolve(process.cwd(), unresolvedPath)
10+
return path.resolve(process.cwd(), unresolvedPath);
1111
}
1212

13-
module.exports = function(main, opts) {
14-
var dir = main ? path.dirname(main) : '.'
15-
var c = read(dir)
13+
module.exports = function (main, opts) {
1614

17-
c.__proto__ = read(process.env.HOME || process.env.USERPROFILE)
15+
var dir = main ? path.dirname(main) : '.';
16+
var c = read(dir);
17+
18+
/* eslint-disable no-proto */
19+
c.__proto__ = read(process.env.HOME || process.env.USERPROFILE);
1820

1921
// Truthy == --all-deps, false: one level of deps
20-
if (typeof c.deps != 'number') c.deps = c.deps ? -1 : 1
22+
if (typeof c.deps !== 'number') c.deps = c.deps ? -1 : 1;
2123

2224
if (opts) {
2325
// Overwrite with CLI opts ...
24-
if (opts.allDeps) c.deps = -1
25-
if (!opts.deps) c.deps = 0
26-
if (opts.dedupe) c.dedupe = true
26+
if (opts.allDeps) c.deps = -1;
27+
if (!opts.deps) c.deps = 0;
28+
if (opts.dedupe) c.dedupe = true;
29+
if (opts.respawn) c.respawn = true;
2730
}
2831

29-
var ignore = (c.ignore || []).map(resolvePath)
32+
var ignore = (c.ignore || []).map(resolvePath);
3033

3134
return {
32-
vm : c.vm !== false,
33-
fork : c.fork !== false,
34-
notify : c.notify !== false,
35-
deps : c.deps,
36-
timestamp : c.timestamp || (c.timestamp !== false && 'HH:MM:ss'),
37-
clear : !!c.clear,
38-
dedupe : !!c.dedupe,
39-
ignore : ignore,
40-
extensions : c.extensions || {
41-
coffee: "coffee-script/register",
42-
ls: "LiveScript"
35+
vm: c.vm !== false,
36+
fork: c.fork !== false,
37+
notify: c.notify !== false,
38+
deps: c.deps,
39+
timestamp: c.timestamp || (c.timestamp !== false && 'HH:MM:ss'),
40+
clear: !!c.clear,
41+
dedupe: !!c.dedupe,
42+
ignore: ignore,
43+
respawn: c.respawn || false,
44+
extensions: c.extensions || {
45+
coffee: 'coffee-script/register',
46+
ls: 'LiveScript'
4347
}
44-
}
45-
}
48+
};
49+
};

lib/dedupe.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
require('dynamic-dedupe').activate()
1+
require('dynamic-dedupe').activate();

0 commit comments

Comments
 (0)