Atom-shell使ってみたんだけど、いつものgulp + browserifyなスケルトンで挑んだら結構詰まる
クライアント側のコードでfs使いたいんだけど、普通にvar fs = require('fs')
しても空のオブジェクトが返ってくる。
これはbrowserifyが require
をどうにかしちゃってるから。
ググったらsubstack本人の書き込みあった。
https://github.com/substack/node-browserify/issues/481
$ browserify --no-detect-globals --bare -t coverify test/*.js | node | coverify
「↑コマンドラインだとこういうノリでやってくれ」って言ってる。
でも、gulpでbrowserifyしてる場合、detectGlobals: false
するだけじゃダメで、builtinsをいじる必要がある。
こんな感じ。
gulp.task('scripts', function () {
var bundler = browserify({
entries: config.entries,
extensions: ['.coffee'],
debug: true,
detectGlobals: false,
builtins: []
});
bundler.transform('coffeeify');
return bundler.bundle()
.on('error', gutil.log.bind(gutil))
.pipe(source('app.js'))
.pipe(gulp.dest(config.dst));
});
今回atom-shellでやったけどnode-webkitもこれでおkなはず