コンテンツにスキップ

CLI

Purus CLIはPurusプロジェクトのコンパイル、実行、チェック、管理のためのコマンドを提供します。

コマンド説明
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ソースファイルをJavaScriptにコンパイルします。単一ファイル、ディレクトリ、設定ファイルベースのコンパイルに対応しています。

Terminal window
purus build hello.purus
# 出力: hello.js
purus build app.cpurus
# 出力: app.cjs
purus build lib.mpurus
# 出力: lib.mjs
拡張子出力形式
.purus.js標準JavaScript
.cpurus.cjsCommonJSモジュール
.mpurus.mjsESモジュール

ディレクトリ内のすべての .purus.cpurus.mpurus ファイルをコンパイルします。出力ディレクトリの構造はソースと同じになります。

Terminal window
# src/ 内のすべてのファイルを dist/ にコンパイル
purus build src
# 出力先ディレクトリを指定
purus build src --output build
# --entryフラグを使用
purus build --entry src
purus build -e src -o build

ファイルやディレクトリが指定されていない場合、カレントディレクトリまたは親ディレクトリから config.purus を読み込みます。

Terminal window
# 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 の代わりに位置引数としても渡せます。

Terminal window
# ヘッダーコメントなしでコンパイル
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/js

ファイルを生成せずにPurusファイルをコンパイルして実行します。テストや開発時に便利です。

Terminal window
purus run hello.purus

ディレクトリ内のすべてのPurusファイルを実行:

Terminal window
purus run src
# --entryフラグを使用
purus run --entry src
purus run -e src
Terminal window
# config.purusのentry設定を使用
purus run
オプションエイリアス説明
--entry <file|dir>-eエントリファイルまたはディレクトリを指定
--strict [true|false]strictモードの有効/無効(デフォルト: true

ファイルやディレクトリは --entry の代わりに位置引数としても渡せます。


コンパイルせずに構文チェックのみ行います。構文が正しければ OK: <file> と表示します。

Terminal window
purus check hello.purus
# OK: hello.purus

ディレクトリ内のすべてのPurusファイルをチェック:

Terminal window
purus check src
# --entryフラグを使用
purus check --entry src
purus check -e src
Terminal window
# config.purusのentry設定を使用
purus check
オプションエイリアス説明
--entry <file|dir>-eエントリファイルまたはディレクトリを指定

ファイルやディレクトリは --entry の代わりに位置引数としても渡せます。


新しいPurusプロジェクトを対話形式で作成します。対象ディレクトリは存在しないか、空である必要があります。

Terminal window
# 対話形式で作成
purus new my-project
# すべてのプロンプトをスキップ
purus new my-project -y
ファイル説明
src/main.purusHello Worldサンプル付きのエントリポイント
config.purusビルドとリント設定
.prettierrcPurus用のPrettier設定
README.mdスクリプトリファレンス付きのREADME
.gitignoreGit除外ルール
package.jsonスクリプト付きnpmパッケージ
スクリプトコマンド説明
puruspuruspurus CLIの実行
buildpurus buildプロジェクトのコンパイル
compilepurus compileプロジェクトのコンパイル(エイリアス)
execpurus runプロジェクトの実行
formatprettier --write ./srcソースファイルのフォーマット
lintpurus-lintソースファイルのリント

プロンプト時(または -y 指定時)に以下のパッケージがインストールされます:

  • purus コンパイラ
  • @puruslang/linter リンター
  • @puruslang/prettier-plugin-purus Prettierプラグイン
  • prettier コードフォーマッター

現在のディレクトリでPurusプロジェクトを初期化します。src/src/main.purus が存在しない場合に作成します。

Terminal window
purus init

インストールされているPurusのバージョンを表示します。

Terminal window
purus version

出力: Purus v ...

エイリアス: purus --version, purus -v


利用可能なすべてのコマンドを表示します。

Terminal window
purus help

エイリアス: purus --help, purus -h


プロジェクトルートに config.purus を配置して、ビルド、実行、リント設定を構成します。ファイル自体がPurus構文を使用します。

-- Purus設定
const entry be ///src///
const output be ///dist///
const type be ///module///
const header be true
const strict be true
-- リンター設定
const lint.no-var be ///warn///
const lint.no-nil be ///off///
const lint.indent-size be 2
const 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///
キーデフォルト説明
entrystring"src"ソースディレクトリ
outputstring"dist"出力ディレクトリ
typestring"module"モジュールタイプ: "module"(ESM)または "commonjs"(CJS)
headerbooleantrue// Generated by Purus ヘッダーコメントを含める
strictbooleantruestrictモードを有効化(出力先頭に "use strict" を追加)
キーデフォルト説明
lint.no-varstring"warn"var 使用時に "warn" または "error"
lint.no-nilstring"off"nil 使用時に "warn" または "error"
lint.indent-sizenumber2期待されるインデントサイズ
lint.max-line-lengthstring/number"off"最大行長("off" で無効化)
lint.no-trailing-whitespacestring"warn"末尾空白に対して "warn" または "error"
lint.no-unused-importstring"warn"未使用importに対して "warn" または "error"
lint.consistent-namingstring"off"命名規則チェックに "warn" または "error"

以下のコマンドはファイル引数が指定されていない場合、自動的に config.purus を読み込みます:

  • purus buildentryoutputtypeheaderstrict 設定を使用
  • purus run entry 設定を使用
  • purus check entry 設定を使用
  • purus-lint lint.* 設定と entry によるファイル探索を使用

コマンドラインオプション(例: --output--entry)は設定値を上書きします。


PurusはNode.jsライブラリとしても使用できます。

const { compile, check, version } = require("purus");

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); // string

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"
オプションデフォルト説明
headerbooleantrueヘッダーコメントを含める
strictbooleantruestrictモードを有効化(出力先頭に "use strict" を追加)
typestring"module"モジュールタイプ: "module"(ESM)または "commonjs"(CJS)

Purusソースコードの構文エラーをチェックします。有効な場合は true を返し、そうでなければエラーをスローします。

check("const x be 42"); // => true
check("const x be"); // throws Error

現在のPurusバージョン文字列: ...

console.log(version); // => "x.y.z"