前提
expressを使用したnode.js用サーバスクリプトをtypescriptで記述し、機能ごとのtsファイルを分割して開発した上で一つのファイルにバンドルして使用するため、これをwebpackでビルドして使用しています。
expressをこのような環境でビルドしようとするとエラーが発生するため、回避策として、webpack-node-externals を使用してwebpack.config.js内でexternalsを設定せよとの情報に行き当たりました。
const nodeExternals = require('webpack-node-externals'); module.exports = { ... target:"node", externals:[nodeExternals()] ... }
以上の設定でwebpackでビルドした結果得られるjsファイルを仮にbundle.jsと呼ぶとき、
私の認識では以下のようになっているはずです
・externals設定によりnode_modulesフォルダ内のモジュールをbundle.jsに含めずビルドする
・サーバ起動時のルートディレクトリにはnode_modulesフォルダを丸ごと持ち込む必要がある
(つまり somefolder>node bundlle.js とコマンドを使用するとき以下のようになっている必要がある)
someFolder-bundle.js └node_modules
これに対して、私はnode_modulesフォルダを丸ごとよりもwebpackでバンドルするほうがminifyなどで軽くなり取り回しがいいと想像するので、expressをエラーを発生させずにバンドルする方法、もし不可能であればnode_modulesフォルダ丸ごとを扱うより取り回しを良くする方法を探しています。
質問
以上の認識を前提として質問いたします。
・上記認識は合っているか
・なぜexternalsを設定する必要があるのか
・externalsを設定する利点は何か
検索した情報のパッチワークで希望の機能を実現しながら勉強しているような段階のため、調べようにもとっかかりがなくこのような形で質問させていただきました。
よろしくお願いいたします。
あなたの回答
tips
プレビュー