はじめに
インストール
npm でインストール:
グローバルインストール
グローバルにインストールすると nsc を直接使えます:
npm install -g noshift.js@latest ローカルインストール
devDependencies としてインストールし、npx 経由で使います:
npm install -D noshift.js@latest プロジェクト作成
新しい NoShift.js プロジェクトを作成:
# Global
nsc create my-project
# Local
npx nsc create my-project プロジェクトディレクトリ、nsjsconfig.json、src/ フォルダが作成され、依存パッケージがインストールされます。
設定
プロジェクト設定ファイル nsjsconfig.json でコンパイラオプションを制御します:
{
"compileroptions": {
"rootdir": "src",
"outdir": "dist",
"warnuppercase": true,
"capitalizeinstrings": true
}
} - rootdir ソースファイルのディレクトリ(デフォルト:
src) - outdir 出力ディレクトリ(デフォルト:
dist) - warnuppercase ソースコード内の大文字を警告する(デフォルト:
true) - capitalizeinstrings 文字列リテラル内で
^3大文字化修飾子を有効にする(デフォルト:true)
コンパイルと実行
すべての .nsjs ファイルをコンパイル:
nsc ローカルインストールの場合は npx を付けます:
npx nsc コンパイルせずに直接実行:
# Global
nsc run src/index.nsjs
# Local
npx nsc run src/index.nsjs ファイル拡張子
NoShift.js ファイルは .nsjs 拡張子を使います。_ で始まるファイル(例: _helper.nsjs)はコンパイラに無視されます。
プログラマティック API
コード内からライブラリとしても使えます。
ESM
import { compile } from "noshift.js";
const result = compile('console.log^8^2^3hello^2^9;');
console.log(result.outputText);
// => console.log("Hello"); CJS
const { compile } = require("noshift.js");
const result = compile('console.log^8^2^3hello^2^9;');
console.log(result.outputText);
// => console.log("Hello"); オプション
第2引数でオプションを渡します:
const result = compile(source, {
capitalizeInStrings: false, // Disable ^3 inside strings
}); 構文診断
diagnose() を使ってコンパイル前に構文エラーをチェックできます:
import { diagnose } from "noshift.js";
const errors = diagnose(source);
if (errors.length > 0) {
for (const e of errors) {
console.error(`Line ${e.line}:${e.column} - ${e.message}`);
}
}