2020年6月19日にベータ版が公開された Parcel 2。
Parcel (v1) にはなかった設定ファイルの追加など Zero Configuration の強みを継承しつつ、カスタマイズもしやすくなっています。
この記事では、まだ公式パッケージが用意されていない stylelint のソースコードバリデーションを行う Validator を作成する手順をご紹介します。
まずは、公式ドキュメントと既存の ESLint Validator でプラグインがどのような構成になっているのかを確認してみましょう。
ESLint Validator の構成を参考にしつつ、 stylelint Validator を作成します。
完成した stylelint Validator は次のリポジトリで公開しています。
https://github.com/lollipop-onl/parcel-validator-stylelint
この記事では、ESLint Validator に準拠した次のようなファイル構成で開発を行います。
ソースコードを/src/StylelintValidator.js
、出力先を/src/StylelintValidator.js
とします。
Plain Text.
│ # 出力ディレクトリ
├── lib/
│ └── StylelintValidator.js
│ # ソースコード
├── src/
│ └── StylelintValidator.js
├── .babelrc
└── package.json
この記事では @babel/cli
で .js のソースコードをコンパイルするような開発環境を用意します。
まずは、yarn init
を実行してpackage.json
を作成しましょう。
Plain Text$ yarn init
確認項目はmain
のみ出力ファイルであるlib/StylelintValidator.js
を指定してください。
それ以外は任意の値を設定すれば大丈夫です。
package.json{
"name": "@lollipop-onl/parcel-validator-stylelint",
"version": "1.0.0",
"description": "Parcel 2 validator of stylelint",
"main": "lib/StylelintValidator.js",
"repository": "https://github.com/lollipop-onl/parcel-validator-stylelint",
"author": "lollipop-onl <lollipop@simochee.net>",
"license": "MIT",
"private": false
}
必要なパッケージをインストールします。
次のコマンドでparcel@2.0.0-beta.1
と@babel/cli
、@parcel/babel-preset
をインストールしてください。
Plain Text$ yarn add parcel@2.0.0-beta.1
$ yarn add -D @babel/cli @parcel/babel-preset
なお、@babel/cli
に必要な@babel/core
は Parcel 2 の依存関係に含まれるため、インストールを省略しています。
つづいて、Babelの設定ファイルとコンパイルスクリプトを設定します。
ESLint Validator の .babelrc
に準拠し、@parcel/eslint-preset
のみ指定した設定ファイルを作成します。
.babelrc{
"presets": ["@parcel/babel-preset"]
}
また、ソースコードをコンパイルする npm-scripts をpackage.json
に追加します。
Validator のエントリーポイントと出力ディレクトリを指定したbabel
コマンドをbuild
スクリプトとして設定します。
package.json{
"scripts": {
"build": "babel ./src/StylelintValidator.js --out-dir lib"
}
}
以上で、Validator の開発環境が構築できました。
package.json{
"name": "@lollipop-onl/parcel-validator-stylelint",
"version": "1.0.0",
"description": "Parcel 2 validator of stylelint",
"main": "lib/StylelintValidator.js",
"repository": "https://github.com/lollipop-onl/parcel-validator-stylelint",
"author": "lollipop-onl <lollipop@simochee.net>",
"license": "MIT",
"private": false,
"scripts": {
"build": "babel ./src/StylelintValidator.js --out-dir lib"
},
"dependencies": {
"parcel": "2.0.0-beta.1"
},
"devDependencies": {
"@babel/cli": "^7.10.4",
"@parcel/babel-preset": "^2.0.0-alpha.2"
}
}
次回は、 Validator のインターフェースについて説明します。