CLI
Purus CLIはPurusプロジェクトのコンパイル、実行、チェック、管理のためのコマンドを提供します。
クイックリファレンス
Section titled “クイックリファレンス”| コマンド | 説明 |
|---|---|
purus build [file|dir] | PurusファイルをJavaScriptにコンパイル |
purus run [file|dir] | ファイルを生成せずにコンパイル実行 |
purus check [file|dir] | 構文チェックのみ |
purus new [name] | 新しいプロジェクトを作成 |
purus init | 現在のディレクトリでプロジェクトを初期化 |
purus version | バージョンを表示 |
purus help | ヘルプを表示 |
エイリアス: compile = build, create = new
purus build / purus compile
Section titled “purus build / purus compile”PurusソースファイルをJavaScriptにコンパイルします。単一ファイル、ディレクトリ、設定ファイルベースのコンパイルに対応しています。
単一ファイル
Section titled “単一ファイル”purus build hello.purus# 出力: hello.js
purus build app.cpurus# 出力: app.cjs
purus build lib.mpurus# 出力: lib.mjs| 拡張子 | 出力 | 形式 |
|---|---|---|
.purus | .js | 標準JavaScript |
.cpurus | .cjs | CommonJSモジュール |
.mpurus | .mjs | ESモジュール |
ディレクトリ
Section titled “ディレクトリ”ディレクトリ内のすべての .purus、.cpurus、.mpurus ファイルをコンパイルします。出力ディレクトリの構造はソースと同じになります。
# src/ 内のすべてのファイルを dist/ にコンパイルpurus build src
# 出力先ディレクトリを指定purus build src --output build
# --entryフラグを使用purus build --entry srcpurus build -e src -o buildconfig.purusを使用
Section titled “config.purusを使用”ファイルやディレクトリが指定されていない場合、カレントディレクトリまたは親ディレクトリから config.purus を読み込みます。
# config.purusのentryとoutputの設定を使用purus build詳細はconfig.purusを参照してください。
| オプション | エイリアス | 説明 |
|---|---|---|
--entry <file|dir> | -e | エントリファイルまたはディレクトリを指定 |
--output <dir> | -o | 出力先ディレクトリを指定(config.purusより優先) |
--no-header | // Generated by Purus ヘッダーコメントを省略 | |
| `—strict [true\ | false]` | |
--type <type> | -t | モジュールタイプの設定: module(ESM)または commonjs(CJS) |
--stdout | コンパイル結果をファイルではなく標準出力に出力 |
ファイルやディレクトリは --entry の代わりに位置引数としても渡せます。
# ヘッダーコメントなしでコンパイルpurus build --no-header hello.purus
# コンパイル結果を標準出力に出力purus build --stdout hello.purus
# ディレクトリを指定して出力先を変更purus build src -o build
# --entryフラグを使用purus build -e src -o build
# config.purusを使用し、出力先を上書きpurus build --output public/jspurus run
Section titled “purus run”ファイルを生成せずにPurusファイルをコンパイルして実行します。テストや開発時に便利です。
単一ファイル
Section titled “単一ファイル”purus run hello.purusディレクトリ
Section titled “ディレクトリ”ディレクトリ内のすべてのPurusファイルを実行:
purus run src
# --entryフラグを使用purus run --entry srcpurus run -e srcconfig.purusを使用
Section titled “config.purusを使用”# config.purusのentry設定を使用purus run| オプション | エイリアス | 説明 |
|---|---|---|
--entry <file|dir> | -e | エントリファイルまたはディレクトリを指定 |
--strict [true|false] | strictモードの有効/無効(デフォルト: true) |
ファイルやディレクトリは --entry の代わりに位置引数としても渡せます。
purus check
Section titled “purus check”コンパイルせずに構文チェックのみ行います。構文が正しければ OK: <file> と表示します。
単一ファイル
Section titled “単一ファイル”purus check hello.purus# OK: hello.purusディレクトリ
Section titled “ディレクトリ”ディレクトリ内のすべてのPurusファイルをチェック:
purus check src
# --entryフラグを使用purus check --entry srcpurus check -e srcconfig.purusを使用
Section titled “config.purusを使用”# config.purusのentry設定を使用purus check| オプション | エイリアス | 説明 |
|---|---|---|
--entry <file|dir> | -e | エントリファイルまたはディレクトリを指定 |
ファイルやディレクトリは --entry の代わりに位置引数としても渡せます。
purus new / purus create
Section titled “purus new / purus create”新しいPurusプロジェクトを対話形式で作成します。対象ディレクトリは存在しないか、空である必要があります。
# 対話形式で作成purus new my-project
# すべてのプロンプトをスキップpurus new my-project -y作成されるファイル
Section titled “作成されるファイル”| ファイル | 説明 |
|---|---|
src/main.purus | Hello Worldサンプル付きのエントリポイント |
config.purus | ビルドとリント設定 |
.prettierrc | Purus用のPrettier設定 |
README.md | スクリプトリファレンス付きのREADME |
.gitignore | Git除外ルール |
package.json | スクリプト付きnpmパッケージ |
package.jsonスクリプト
Section titled “package.jsonスクリプト”| スクリプト | コマンド | 説明 |
|---|---|---|
purus | purus | purus CLIの実行 |
build | purus build | プロジェクトのコンパイル |
compile | purus compile | プロジェクトのコンパイル(エイリアス) |
exec | purus run | プロジェクトの実行 |
format | prettier --write ./src | ソースファイルのフォーマット |
lint | purus-lint | ソースファイルのリント |
オプションのdevDependencies
Section titled “オプションのdevDependencies”プロンプト時(または -y 指定時)に以下のパッケージがインストールされます:
purusコンパイラ@puruslang/linterリンター@puruslang/prettier-plugin-purusPrettierプラグインprettierコードフォーマッター
purus init
Section titled “purus init”現在のディレクトリでPurusプロジェクトを初期化します。src/ と src/main.purus が存在しない場合に作成します。
purus initpurus version
Section titled “purus version”インストールされているPurusのバージョンを表示します。
purus version出力: Purus v
エイリアス: purus --version, purus -v
purus help
Section titled “purus help”利用可能なすべてのコマンドを表示します。
purus helpエイリアス: purus --help, purus -h
config.purus
Section titled “config.purus”プロジェクトルートに config.purus を配置して、ビルド、実行、リント設定を構成します。ファイル自体がPurus構文を使用します。
-- Purus設定const entry be ///src///const output be ///dist///const type be ///module///const header be trueconst strict be true
-- リンター設定const lint.no-var be ///warn///const lint.no-nil be ///off///const lint.indent-size be 2const lint.max-line-length be ///off///const lint.no-trailing-whitespace be ///warn///const lint.no-unused-import be ///warn///const lint.consistent-naming be ///off///| キー | 型 | デフォルト | 説明 |
|---|---|---|---|
entry | string | "src" | ソースディレクトリ |
output | string | "dist" | 出力ディレクトリ |
type | string | "module" | モジュールタイプ: "module"(ESM)または "commonjs"(CJS) |
header | boolean | true | // Generated by Purus ヘッダーコメントを含める |
strict | boolean | true | strictモードを有効化(出力先頭に "use strict" を追加) |
リンター設定
Section titled “リンター設定”| キー | 型 | デフォルト | 説明 |
|---|---|---|---|
lint.no-var | string | "warn" | var 使用時に "warn" または "error" |
lint.no-nil | string | "off" | nil 使用時に "warn" または "error" |
lint.indent-size | number | 2 | 期待されるインデントサイズ |
lint.max-line-length | string/number | "off" | 最大行長("off" で無効化) |
lint.no-trailing-whitespace | string | "warn" | 末尾空白に対して "warn" または "error" |
lint.no-unused-import | string | "warn" | 未使用importに対して "warn" または "error" |
lint.consistent-naming | string | "off" | 命名規則チェックに "warn" または "error" |
config.purusの使われ方
Section titled “config.purusの使われ方”以下のコマンドはファイル引数が指定されていない場合、自動的に config.purus を読み込みます:
purus build—entry、output、type、header、strict設定を使用purus runentry設定を使用purus checkentry設定を使用purus-lintlint.*設定とentryによるファイル探索を使用
コマンドラインオプション(例: --output、--entry)は設定値を上書きします。
プログラマティックAPI
Section titled “プログラマティックAPI”PurusはNode.jsライブラリとしても使用できます。
const { compile, check, version } = require("purus");TypeScriptサポート
Section titled “TypeScriptサポート”PurusにはTypeScript型定義が同梱されています。別途 @types パッケージは不要です。
import { compile, check, version } from "purus";
const js: string = compile("const x be 42", { header: false, strict: true, type: "module" });const valid: true = check("const x be 42");console.log(version); // stringcompile(source, options?)
Section titled “compile(source, options?)”PurusソースコードをJavaScriptにコンパイルします。
ヘッダーコメントにはインストール済みのPurusバージョン(現在
const js = compile("const x be 42");// => "// Generated by Purus x.y.z\n\"use strict\";\nconst x = 42;\n"
const js = compile("const x be 42", { header: false });// => "\"use strict\";\nconst x = 42;\n"| オプション | 型 | デフォルト | 説明 |
|---|---|---|---|
header | boolean | true | ヘッダーコメントを含める |
strict | boolean | true | strictモードを有効化(出力先頭に "use strict" を追加) |
type | string | "module" | モジュールタイプ: "module"(ESM)または "commonjs"(CJS) |
check(source)
Section titled “check(source)”Purusソースコードの構文エラーをチェックします。有効な場合は true を返し、そうでなければエラーをスローします。
check("const x be 42"); // => truecheck("const x be"); // throws Errorversion
Section titled “version”現在のPurusバージョン文字列:
console.log(version); // => "x.y.z"