Turborepoによるモノレポ
私はあなたのローカルと継続的な統合ビルドで高性能ビルドシステムのPNPMとMonorepo TurborePoを使用する方法をお教えします.
まず、ルートディレクトリを作成する必要があります.
それからNPMパッケージJSONを生成します.
PNPMワークスペース.YAMLはワークスペースのルートを定義し、ワークスペースからディレクトリを含める/除外できます.
我々の例では、我々は2つのプロジェクトが最初にリミックスアプリケーションとVITEを介して他のlibです.
また、PNPMをrootにインストールする必要があります.
ルートパッケージJSONファイルにターボセクションを追加する必要があります.
これはパイプラインの定義です.
キャッシュを設定することができますし、どのようにタスクは、ビルドLINTのテストのようなNPMパッケージのスクリプトに応じて関連付けられている.
アプリケーションとlib.
ラン
ラン
その後、ルートフォルダに移動し
我々は、我々はリミックスアプリケーション内で使用できるライブラリを作成するためにVITEを使用することができます.
内部
詳細については、「プロダクションライブラリモード」「vite」を参照ください.
次にインデックスを作成します.srcフォルダ内のjsファイル.
リミックスのパッケージJSONに行き、依存関係プロパティの中にこの行を追加します
その後、monorepoとのルートに行く
Monorepo側のすべてのアプリケーションを実行するために
すべてのキャッシュとmonorepoで動作します.
迅速かつ迅速に高速であなたのアプリケーションを公開することができます.
ギタブへのリンク
https://github.com/yanirmanor/mono-turbo-example
まず、ルートディレクトリを作成する必要があります.
それからNPMパッケージJSONを生成します.
pnpm init -y
ここでPNPMワークスペースを作成する必要があります.YAMLファイル.PNPMワークスペース.YAMLはワークスペースのルートを定義し、ワークスペースからディレクトリを含める/除外できます.
我々の例では、我々は2つのプロジェクトが最初にリミックスアプリケーションとVITEを介して他のlibです.
packages:
- application
- lib
今、我々はTurborepoを追加することができますpnpm i -Dw turbo
- wフラグはワークスペース(または--ワークスペースのルート)です.また、PNPMをrootにインストールする必要があります.
ルートパッケージJSONファイルにターボセクションを追加する必要があります.
これはパイプラインの定義です.
キャッシュを設定することができますし、どのようにタスクは、ビルドLINTのテストのようなNPMパッケージのスクリプトに応じて関連付けられている.
"turbo": {
"pipeline": {
"dev": {
"cache": false
},
"build": {
"dependsOn": [
"^build"
],
"outputs": [
"build/**",
"dist/**"
]
}
}
}
また、我々はmonorepoのNPMスクリプトを追加することができます."scripts": {
"dev": "turbo run dev",
"build": "turbo run build"
}
この設定の後、2つのフォルダを作成します.アプリケーションとlib.
ラン
pnpx init vite@latest
フォルダをlibに設定します.ラン
pnpx create-remix@latest
アプリケーションのフォルダーを設定します.その後、ルートフォルダに移動し
pnpm i -r
両方のプロジェクトにnodeoundモジュールをインストールします.我々は、我々はリミックスアプリケーション内で使用できるライブラリを作成するためにVITEを使用することができます.
内部
vite.config.js
このセクションを追加します.詳細については、「プロダクションライブラリモード」「vite」を参照ください.
build: {
lib: {
entry: "./src/index.js",
formats: ["cjs", "es"],
fileName: (format) => `index.${format}.js`,
},
rollupOptions: {
external: ["react", "react-dom"],
},
},
}
簡単なコンポーネントを作成できます.次にインデックスを作成します.srcフォルダ内のjsファイル.
export { default as Card } from "./components/Card"
Vite libのパッケージJSONの中で、我々は追加する必要があります "main": "./dist/index.cjs.js",
"module": "./dist/index.esm.js",
最後に、実行してビルドする必要がありますpnpm run build
リミックスアプリケーション内のこのコンポーネントを使用するため.リミックスのパッケージJSONに行き、依存関係プロパティの中にこの行を追加します
"lib": "workspace:*"
.その後、monorepoとのルートに行く
pnpm i
Monorepo側のすべてのアプリケーションを実行するために
pnpm run dev
すべてのキャッシュとmonorepoで動作します.
迅速かつ迅速に高速であなたのアプリケーションを公開することができます.
ギタブへのリンク
https://github.com/yanirmanor/mono-turbo-example
Reference
この問題について(Turborepoによるモノレポ), 我々は、より多くの情報をここで見つけました https://dev.to/manoryanir/monorepo-with-turborepo-enpテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol