UNPKG

1.3 kBJavaScriptView Raw
1const { entry } = require('./webpack.dll.config')
2const fse = require('fs-extra')
3const fs = require('fs')
4const { dllVersion } = require('config').get('path')
5
6const getDllPkgsVersion = () => {
7 const dllPkgs = Object.values(entry).reduce((prev, cur) => {
8 prev.push(...cur)
9 return prev
10 }, [])
11
12 const dllPkgsVersion =
13 dllPkgs.reduce((prev, cur) => {
14 let key = cur.split('/').filter(v => v)[0]
15
16 prev[key] = require(`${key}/package.json`).version
17 return prev
18 }, {}) || {}
19
20 return dllPkgsVersion
21}
22
23const createDllVersion = () => {
24 const version = getDllPkgsVersion()
25
26 fse.ensureFileSync(dllVersion)
27 fse.writeJsonSync(dllVersion, version, { encoding: 'utf-8', space: 4 })
28}
29
30const getDllVersion = () => {
31 if (!fs.existsSync(dllVersion)) {
32 return {}
33 } else {
34 return fse.readJsonSync(dllVersion, { encoding: 'utf-8' })
35 }
36}
37
38const isSame = (a, b) => {
39 let akeys = Object.keys(a)
40
41 let bkeys = Object.keys(b)
42
43 return akeys.length === bkeys.length && akeys.every(v => a[v] === b[v])
44}
45
46const checkDllVersion = () => {
47 const currentVersion = getDllPkgsVersion()
48 const lastVersion = getDllVersion()
49
50 return isSame(currentVersion, lastVersion)
51}
52
53module.exports = {
54 getDllPkgsVersion,
55 createDllVersion,
56 getDllVersion,
57 checkDllVersion
58}