FrontendReact

nwbでReact Component libraryを作る

「コンポーネントライブラリを作るならnwbがいいよ」という話を聞いたのでやってみました。 インストール CLIツールなのでグローバルインストールします。グローバルを使いたくないかたは、以降のnwbをnpx nwbに読み替 […]

広告ここから
広告ここまで

「コンポーネントライブラリを作るならnwbがいいよ」という話を聞いたのでやってみました。

インストール

$ npm i -g nwb
$ nwb --version

CLIツールなのでグローバルインストールします。グローバルを使いたくないかたは、以降のnwbnpx nwbに読み替えてください。ちなみに結構重たいので、npxで毎回落としてくるのはちょっと煩雑かもです。

セットアップ

React Componentを作る時は、new react-component <コンポーネント名>でできます。ES ModuleやUMDに関する質問が対話形式できますので、作りたいものにあわせて回答しましょう。なお、ここからさきはUMDなしで進めます。

$ nwb new react-component my-component
Creating a react-component project...
? Do you want to create an ES modules build for use by compatible bundlers? Yes
? Do you want to create a UMD build for global usage via <script> tag? Yes
? Which global variable should the UMD build set? my-component
$ cd my-component

生成されるファイルはこのような形です。

$ tree -I node_modules
.
├── CONTRIBUTING.md
├── README.md
├── demo
│   └── src
│       └── index.js
├── nwb.config.js
├── package.json
├── src
│   └── index.js
└── tests
    └── index-test.js

4 directories, 7 files

コマンド

npm start/demo/src/index.jsが開きますので、作成したコンポーネントの動作確認をおこなうことができます。

$ npm start // 動作確認画面
$ npm run build // ビルド
$ npm test // ユニットテスト

npm publish ./を実行すると、ビルドもした上で実行してくれます。

$ npm run build
> my-component@0.1.0 prepublishOnly ./
> npm run build


> my-component@0.1.0 build /Users/develop/my-component
> nwb build-react-component

✔ Cleaning module
✔ Creating ES5 build
✔ Creating ES modules build
✔ Creating UMD builds
...

ここまでやるとできるのが以下です。

profitwell-component / npm

コンポーネントライブラリを作るのがかなり簡単になりますので、汎用化したいものがあればnwbでサクッとやっちゃうのはよさそうです。

UMD対応等について

nwb.config.jsに書かれているので、あとで変更もできそうです。

module.exports = {
  type: 'react-component',
  npm: {
    esModules: true,
    umd: {
      global: 'my-component',
      externals: {
        react: 'React'
      }
    }
  }
}

ブックマークや限定記事(予定)など

WP Kyotoサポーター募集中

WordPressやフロントエンドアプリのホスティング、Algolia・AWSなどのサービス利用料を支援する「WP Kyotoサポーター」を募集しています。
月額または年額の有料プランを契約すると、ブックマーク機能などのサポーター限定機能がご利用いただけます。

14日間のトライアルも用意しておりますので、「このサイトよく見るな」という方はぜひご検討ください。

広告ここから
広告ここまで

Related Category posts