こうこく
作 ▸

JavaScript 文字のパディング (右埋め・左埋め・中央寄せ)

String.repeat() がES6なのでIE11では動きまてん

右埋め
const padRight = (str, padchar, len) => {
  const padstr = padchar.repeat(len);
  return `${str}${padstr}`.slice(0, len);
};
左埋め
const padLeft = (str, padchar, len) => {
  const padstr = padchar.repeat(len);
  return `${padstr}${str}`.slice(-len);
};
中央寄せ
const padSide = (str, padchar, len) => {
  const lPadstr = padchar.repeat(Math.floor(len / 2));
  const rPadstr = padchar.repeat(Math.ceil(len / 2));
  const padded = `${lPadstr}${str}${rPadstr}`;
  const start = Math.floor((padded.length - len) / 2);
  return padded.slice(start, start + len);
};
作 ▸

Node.jsで色んなパスを取得

全部フルパス

[ Node.js v10.16.3 ]

const path = require('path');

// プロセス = nodeコマンドを叩いたプロセス
// 実行ファイル = nodeコマンドで叩かれたファイル
// 現在のファイル = 実行中のモジュールのファイル

console.log('プロセスのカレントディレクトリ (1)', path.resolve());
console.log('プロセスのカレントディレクトリ (2)', process.cwd());

console.log('実行ファイルのパス', process.argv[1]);
console.log('実行ファイルの名前', path.basename(process.argv[1]));
console.log('実行ファイルのディレクトリ', path.dirname(process.argv[1]));

console.log('現在のファイルのパス', __filename);
console.log('現在のファイルの名前', path.basename(__filename));
console.log('現在のファイルのディレクトリ', __dirname);

console.log('現在のファイルの一つ上のディレクトリ', path.resolve(__dirname, '..'));
console.log('現在のファイルの二つ上のディレクトリ', path.resolve(__dirname, '..', '..'));