如何确定已安装的 Web 包版本

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


答案 1

安装的版本:

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

webpack --version

艺术

webpack -v

使用 npm 列表命令:

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)

为此,我们需要做两件事:

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

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 视图命令将返回注册表上可用的最新版本:

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


对于网络包使用:

npm view webpack version

答案 2

对于那些正在使用的人yarn

yarn list webpack将做伎俩

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