Node.jsで実行中のOSの情報を取得する。

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

今回は小ネタです。

gulp等でレポートを生成し、制し得したレポートを確認したいといったことがあります。

gulpでファイル等を開く際に使えるプラグインとしてstevelacy/gulp-openがあるのですが、
例えばchromeで開きたいといった際にO/Sごとに付与するoptionが異なります。

そういった際にO/S情報をどのように取得するかといったtipsになります。

実装

O/Sの情報取得はNode.js内でosというモジュールをrequireすることで取得できます。

以下はO/Sの情報を取得しWindows環境ではchromeというオプションを、
それ以外ではGoogle Chromeというオプションを付与して、
Developers.IOを開くといったgulpタスクの例になります。

gulpfile.js

'use strict';
var os = require('os');
var gulp = require('gulp');
var gulpopen = require('gulp-open');
gulp.task('default',function(){
    var chrome = os.type().toString().match('Windows') !== null  ? 'chrome':'Google Chrome';
    var options = {
        url:'https://dev.classmethod.jp/',
        app: chrome
    };
    return gulp.src('./gulpfile.js')
    .pipe(gulpopen('',options));
});

動作確認

# npm install gulp
# npm install gulp-open
# gulp

まとめ

Gulpでフロントエンド用のタスクを作っていたりすると、
O/Sごとに挙動を切り替えたいといったケースが発生することがあります。

そう言った際に上記の方法でO/Sの情報が取得できますので、
その後条件分岐により挙動を切り替えることが可能になります。