特にwebpack v1からv2への移行時には、プログラム的に webpack versionがインストールされているものを判断することが重要ですが、適切なAPIが見つからないようです。
webpack 4は現在使用可能なversionプロパティを提供しています
webpack CLI :(--version, -v Show version number [boolean])
を使う
webpack --version
または
webpack -v
npm list コマンドを使用する:
npm list webpack
name@version-range
の結果:
<projectName>@<projectVersion> /path/to/project
└── webpack@<version-range>
ヤーンリスト コマンドを使用する:
yarn list webpack
Webpack 2は 設定タイプ を導入しました。
設定オブジェクトをエクスポートする代わりに、環境を引数として受け取る関数を返すことができます。 webpackを実行するとき、
--env
や--env.production
のように--env.platform=web
でビルド環境キーを指定することができます。
--env.version
というビルド環境キーを使用します。
webpack --env.version $(webpack --version)
または
webpack --env.version $(webpack -v)
これが機能するためには、2つのことをする必要があります。
webpack.config.js
ファイルを変更して DefinePlugin を使用します。
DefinePluginを使用すると、コンパイル時に構成できるグローバル定数を作成できます。
-module.exports = {
+module.exports = function(env) {
+ return {
plugins: [
new webpack.DefinePlugin({
+ WEBPACK_VERSION: JSON.stringify(env.version) //<version-range>
})
]
+ };
};
これでグローバル定数にアクセスできます。
console.log(WEBPACK_VERSION);
npm view コマンドを使用すると、レジストリで入手可能な最新バージョンが返されます。
npm view [<@scope>/]<name>[@<version>] [<field>[.<subfield>]...]
ウェブパックの場合:
npm view webpack version
yarn
を使用している人のために
yarn list webpack
がうまくいくでしょう
$ yarn list webpack
yarn list v0.27.5
└─ [email protected]
Done in 1.24s.
Angular CLI v7 +を使用している場合は、Webパックのバージョンがng version
の出力に表示されます。
-> ng version
_ _ ____ _ ___
/ \ _ __ __ _ _ _| | __ _ _ __ / ___| | |_ _|
/ △ \ | '_ \ / _` | | | | |/ _` | '__| | | | | | |
/ ___ \| | | | (_| | |_| | | (_| | | | |___| |___ | |
/_/ \_\_| |_|\__, |\__,_|_|\__,_|_| \____|_____|___|
|___/
Angular CLI: 7.0.6
Node: 11.0.0
OS: darwin x64
Angular: 7.1.0
... animations, cdk, common, compiler, compiler-cli, core, forms
... http, language-service, material, platform-browser
... platform-browser-dynamic, router
Package Version
-----------------------------------------------------------
@angular-devkit/architect 0.10.6
@angular-devkit/build-angular 0.10.6
@angular-devkit/build-optimizer 0.10.6
@angular-devkit/build-webpack 0.10.6
@angular-devkit/core 7.0.6
@angular-devkit/schematics 7.0.6
@angular/cli 7.0.6
@ngtools/webpack 7.0.6
@schematics/angular 7.0.6
@schematics/update 0.10.6
rxjs 6.3.3
TypeScript 3.1.6
webpack 4.19.1