Node いろいろ
npm、node のバージョン固定
方法1 .node-version ファイルを配置すると node バージョンを固定できる
//.node-version
v10.0.0
この方法の場合 npm ci
のときもエラーを出す
npm は制限できない
方法2 package.json で node と npm 両方固定する
//package.jsonにengineを追加する
"engines": {
"node": "10.10.0",
"npm": "5.6.0"
},
//.npmrcを追加して以下を入力
engine-strict=true
この方法の場合 npm ci
のときはエラーを出さない
npm も含めて制限可能
システムコマンドをコールする
//指定のディレクトリ からhtmファイルの一覧を取得するよ
const execSync = require('child_process').execSync;
const result = execSync('find ../public -name "*.html"').toString();
execSyncの戻り値からtoStringをコールするのがポイントだな
ファイル読んだり書いたりする
// 文字を置換して上書きしよう
let html = fs.readFileSync(url, 'utf-8');
html = html.replace(/src="\/img\//g, 'src="/blog/img/');
fs.writeFileSync(url, html);
nodenv
nodebrew より優秀
特定のディレクトリ に対して node バージョンをセットできる
プロジェクト毎切り替え作業が不要となる
//マシンのnodeバージョンをセット
nodenv global 13.0.0
//ディレクトリ にnodeバージョンをセット
nodenv local 12.0.0
//セットしたローカルnodeを削除
nodenv local --unset