node-config は Node.js で設定ファイル(config)を扱うモジュールです。
設定ファイルを JSON、YAML などの形式で記述して、プログラム上でオブジェクトとして利用できます。
process.env でサーバの環境変数を取得することができます。Node.js の本番、開発などの環境変数は NODE_ENV を利用しますが、デフォルトは何も設定されていません。
process.env.NODE_ENV
$ npm install config
プロジェクト
|- config + default.json
|- development.json
|- node_modules/
|- package-lock.json
|- package.json
|- index.js
JSON 形式でサーバ設定を記述します。
{
"server": {
"host": "127.0.0.1",
"port": 3000
}
}
{
"test": 1
}
const config = require('config');
config.env = process.env.NODE_ENV || 'development';
console.log(config.server.host);
console.log(config.server.port);
console.log(config.test);
NODE_ENV をターミナルで設定すればそのまま node コマンドで実行できます。
$ export NODE_ENV=development
$ node app.js
明示的に NODE_ENV=develpment でもファイルを実行できます。
$ NODE_ENV=development node app.js
その他プログラムで環境変数の設定や「cross-env」モジュールを利用することもできます。
CSSコンパイルは開発のみで利用するため、ローカル(devDependencies)にインストールします。
$ npm install node-sass --save-dev
//または
$ yarn install node-sass --dev
--save-dev はローカル(devDependencies)にインストールする npm コマンドオプションです。
yarn では --dev にあたります。(混乱しますが・・・)
sass から css に書き出すディレクトリを構成します。
sources/sass/default.scss
public/css/default.css
npm を初期化してない場合は、新規作成します。
$ npm init
package.json の scripts に sass の設定を記述します。
"scripts": {
"sass": "node-sass resources/sass/ --output public/css/ --output-style compressed --watch --source-map true"
}
$ npm run sass
public/css/ に対象の cssファイルが書き出されます。
Node.js のバージョン管理ツール nvm のインストールメモ nvm は Node.js のバージョン管理ツールです。
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.2/install.sh | bash
バージョン確認
$ source ~/.bashrc
$ nvm --version
0.35.2
$ nvm ls-remote
...
v13.6.0
$ nvm install --lts
...
Now using node v12.14.1 (npm v6.13.4)
Creating default alias: default -> lts/* (-> v12.14.1)
$ nvm ls
-> v12.14.1
system
default -> lts/* (-> v12.14.1)
node -> stable (-> v12.14.1) (default)
stable -> 12.14 (-> v12.14.1) (default)
iojs -> N/A (default)
unstable -> N/A (default)
lts/* -> lts/erbium (-> v12.14.1)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.18.1 (-> N/A)
lts/erbium -> v12.14.1
$ nvm current
v12.14.1
$ node --version
v12.14.1
$ node use [version]