Skip to content

Latest commit

 

History

History
86 lines (61 loc) · 2.49 KB

config.md

File metadata and controls

86 lines (61 loc) · 2.49 KB

Config の設定

s2s.config.jsをプロジェクトのルートに配置します。基本的に必要となる項目は、pluginstemplatesの 2 つです。

module.exports = {
  plugins: [],
  templates: [],
}

watch

対象となるファイルを Glob パターンで指定します。デフォルトは./**/*.jsjsを対象に取ります。

plugins

オブジェクトの配列を指定します。必須項目は、testです。 testは、対象とするファイルを正規表現で指定します。 pluginはそれぞれのハンドラーで指定されたオプションを指定します。デフォルトでは、babel の plugin を指定します。なので、.babelrcの指定方法と同様にプラグイン名、オプションが必要な場合は、配列で渡すことが可能です。

type EventType = 'add' | 'change' | 'unlink'
type Only = EventType[]

type Plugin = {|
  test: RegExp | string | string[],
  plugin?: *,
  only?: Only,
  input?: FileName,
  output?: FileName,
|}

templates

テンプレートからファイルをコピーします。必要項目は、testinputです。 testは、plugins と同様にファイルパスを正規表現で指定します。 input はtemplatesディレクトリにあるファイルを指定します。

type Template = {|
  test: RegExp | string | string[],
  input: Path,
  output?: Path,
|}

また、ejs 形式の埋め込みをサポートしており、デフォルトではFILENAMEでファイル名が、DIRNAMEで親ディレクトリ名が渡されます。

Hello/index.js

console.log("<%= DIRNAME %>")

  

console.log("Hello")

handlerMapper

{ [extensions: string]: Handler }

必須ではありません。ハンドラの拡張子を指定することでそのハンドラを実行します。未指定の場合、デフォルトで .js .jsx .ts .tsx をそれぞれ処理します。

  handlerMapper: {
    '*.ts': typescriptHandler
  }

afterHook

必須ではありません。 hook の配列を指定します。 handler が実行された際に、指定された hook が実行されます。

export type AfterHook = (code: Code, path: Path) => Code

prettier

必須ではありません。デフォルトで true が指定されています。 true が指定されていると、 prettierHook が有効になります。