如何确定安装的webpack版本

特别是在从webpack v1到v2的过渡期间,以编程方式确定安装什么webpack版本将是非常重要的,但我似乎无法find合适的API。

安装版本:

使用webpack CLI(--version, -v Show version number [boolean])

 webpack --version 

要么:

 webpack -v 

使用npm list命令:

 npm ls [[<@scope>/]<pkg> ...] 

对于webpack使用:

 npm list webpack 

结果在name@version-range

 <projectName>@<projectVersion> /path/to/project └── webpack@<version-range> 

如何以编程方式做到这一点?

Webpack 2引入了configurationtypes

您可以不用导出configuration对象,而是返回一个接受环境作为参数的函数。 运行webpack时,可以通过--env指定构build环境密钥,如--env.production--env.platform=web

我们将使用名为--env.version的构build环境键。

 webpack --env.version $(webpack --version) 

要么:

 webpack --env.version $(webpack -v) 

为了这个工作,我们需要做两件事情:

更改我们的webpack.config.js文件并使用DefinePlugin

DefinePlugin允许您创build可在编译时configuration的全局常量。

 -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命令将返回registry中可用的最新版本:

npm view [<@scope>/]<name>[@<version>] [<field>[.<subfield>]...]


对于webpack使用:

 npm view webpack version 

对于那些正在使用yarn

yarn list webpack将做的伎俩

 $ yarn list webpack yarn list v0.27.5 └─ webpack@2.6.1 Done in 1.24s.