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 ヘッダーコメントを省略 | |
--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 | エントリファイルまたはディレクトリを指定 |
ファイルやディレクトリは --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-purus— Prettierプラグインprettier— コードフォーマッター
purus init
Section titled “purus init”現在のディレクトリでPurusプロジェクトを初期化します。src/ と src/main.purus が存在しなければ作成します。
purus initpurus version
Section titled “purus version”インストールされているPurusのバージョンを表示します。
purus version# purus v0.4.0エイリアス: 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 Configuration
const entry be ///src///const output be ///dist///const header be true
-- Linter settingsconst 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" | 出力先ディレクトリ |
header | boolean | true | // Generated by Purus ヘッダーコメントを含める |
リンター設定
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" | 未使用インポートに "warn" または "error" |
lint.consistent-naming | string | "off" | 命名規則チェックに "warn" または "error" |
config.purusの使われ方
Section titled “config.purusの使われ方”以下のコマンドはファイル引数がない場合、自動的に config.purus を読み込みます:
purus build—entry、output、header設定を使用purus run—entry設定を使用purus check—entry設定を使用purus-lint—lint.*設定とentryによるファイル検出を使用
コマンドラインオプション(例: --output、--entry)は設定ファイルの値を上書きします。
プログラマティックAPI
Section titled “プログラマティックAPI”PurusはNode.jsライブラリとしても使用できます。
const { compile, check, version } = require("purus");compile(source, options?)
Section titled “compile(source, options?)”PurusソースコードをJavaScriptにコンパイルします。
const js = compile("const x be 42");// => "// Generated by Purus 0.4.0\nconst x = 42;\n"
const js = compile("const x be 42", { header: false });// => "const x = 42;\n"| オプション | 型 | デフォルト | 説明 |
|---|---|---|---|
header | boolean | true | ヘッダーコメントを含める |
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); // => "0.4.0"