题目描述
自定义封装loader时碰到一个关于JS的问题。想要自己封装一个loader实现每次打包代码都自动在代码里加上两个console来作为标记,其中有一个就是获取当前时间,本来想着每次打包后运行控制台中看到的时间都会不一样,结果每次时间都会一样,但是隔一段时间打包就会不一样。效果如下:
[mark] buildTime:2019-12-19 22:09:41
相关代码
function getNormalTime() {
let curTime = new Date(Date.now() + 8 * 3600 * 1000).toISOString().replace(/T/g, ' ').split(
'.')[
0]
let info = `
console.info('[mark] buildTime:${curTime}')
console.info('[mark] buildAuthor:${process.env.USER}')
`
return info
}
function addInfo(str) {
const regex = /(\$mount\('#app'\);)/g;
return str.replace(regex, '$1' + getNormalTime())
}
module.exports = function (source) {
return addInfo(source)
}
所以我很不理解为什么会不一样?要怎么才能让我每一次打包时间输出都不一样?谢谢大佬解惑!
目标文件没有发生变化,结果被缓存了吧。
只是输出打包时间直接在
webpack.config.js
里写就好了,不需要这么复杂。