Vue.js - 显示项目build构建时间教程(附:使用时间戳命名编译后文件)
作者:hangge | 2023-08-24 09:10
有时我们想要在页面上显示或者控制台中输出 Vue 项目的编译构建时间,以方便追踪应用的版本或测试。这个功能具体可以通过以下步骤实现。
1,安装 moment 库
Moment.js 是一个轻量级的 JavaScript 时间库,它提供了许多日常对时间的操作方法,比如获取时间,设置时间,格式化时间,比较时间等。首先我们进入项目文件夹执行如下命令进行安装:
npm install moment
2,修改 webpack 配置文件
(1)修改项目的 webpack 配置文件 vue.config.js,在文件顶部引入 moment 库:
const moment = require('moment');
(2)在 webpack 配置中的 configureWebpack 选项下,添加 DefinePlugin 插件,我们定义一个全局变量 BUILD_TIME,并将构建时间作为其值。
// webpack相关配置 configureWebpack: { // 提供一个回调函数,可以在这里修改webpack的配置 // 相关文档:https://cli.vuejs.org/zh/guide/webpack.html#简单的配置方式 // 这里只是一个示例,你可以根据你的需求进行配置。 // 在这个示例中,我们给webpack添加了一个自定义的loader。 module: { rules: [{ test: /.txt$/, use: 'raw-loader', }, ], }, plugins: [ new webpack.DefinePlugin({ 'BUILD_TIME': JSON.stringify(moment().format('YYYY-MM-DD HH:mm:ss')) }) ] },
3,输出构建时间
(1)这样我们在 Vue 项目的任何地方,都可以访问全局变量 BUILD_TIME 来获取构建时间。比如下面我们在 main.js 中将构建时间输出:console.log('版本构建时间:', BUILD_TIME);
(2)项目部署后,使用浏览器访问页面,打开控制台可以看到如下信息:
附:使用自定义的时间戳作为编译后的文件名
(1)默认情况下,编译后的 js 文件名形式如下:
(2)如果想要使用自定义的时间戳作为文件名,我们可以在 vue.config.js 文件中进行如下配置:
configureWebpack: { // 提供一个回调函数,可以在这里修改webpack的配置 // 相关文档:https://cli.vuejs.org/zh/guide/webpack.html#简单的配置方式 // 这里只是一个示例,你可以根据你的需求进行配置。 // 在这个示例中,我们给webpack添加了一个自定义的loader。 module: { rules: [{ test: /.txt$/, use: 'raw-loader', }, ], }, output: { filename: `[name].${moment().format('YYYYMMDDHHmmss')}.js`, chunkFilename: `[name].${moment().format('YYYYMMDDHHmmss')}.js`, } },
(3)这样编译后的文件名里面就使用时间戳了,这样也可以有效解决浏览器缓存问题:
全部评论(0)