はじめに

インストール

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.jsonsrc/ フォルダが作成され、依存パッケージがインストールされます。

設定

プロジェクト設定ファイル 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}`);
  }
}