この記事では主にWebpackのサーバーサイドコードパッケージ化のサンプルコードを紹介していますが、編集者が非常に良いと思ったので、参考として共有させていただきます。エディターをフォローして見てみましょう
環境変数
以前は、プロジェクト内で process.env.NODE_ENV をよく使用していましたが、この変数は Webpack のパッケージ化に影響を与え、運用中に最適化されます。
そこで、他の環境変数を使用して区別します:
new webpack.DefinePlugin({ 'process.env.NODE_ENV': '"production"', 'process.env.API_ENV': `"${process.env.API_ENV || 'development'}"` })
このように、NODE_ENV は常に運用環境用です。
そして実際の開発/運用環境では、 process.env.API_ENV 変数を使用して (このプロジェクトは koa インターフェイス サービス プロジェクトであるため、満足している限り、このように名前を付けたり、任意の名前に変更したりできます)。
注: 以前はノードを使用していました。 js バックエンド プロジェクトでは、動的構成の読み込みは通常次のように記述されます:
const ENV = process.env.NODE_ENV || 'development'; // eslint-disable-next-line import/no-dynamic-require const options = require(`./_${ENV}`); module.exports = options;
// eslint-disable-next-line import/no-dynamic-require const options = require(`./_${process.env.API_ENV || 'development'}`); module.exports = options;
// config/_development.js exports.enabledModules = ['user', 'demo']; // 可能 src 目录下 还有其他模块目录, 如 'manage' 等
new webpack.ContextReplacementPlugin(/src/, new RegExp(`^./(${enabledModules.join('|')})/.*$`))
高度な使用法
たとえば、 src ディレクトリ内の各モジュールのディレクトリに加えて、 lib およびフックなどのいくつかの共通のメソッド クラスとフック ディレクトリもあり、これらの 2 つのディレクトリは他のサブモジュールによって参照される場合があります。プラグイン正規表現内: コードは次のとおりです:
コードを圧縮し、ソースマップのサポートを追加します
サンプル プロジェクトのソース コード: https://github.com/AirDwing/webpack-server-バンドル
以上がWebpack サーバー側コードのパッケージ化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。