mirror of
https://github.com/tusen-ai/naive-ui.git
synced 2025-01-30 12:52:43 +08:00
build: replace define after build
This commit is contained in:
parent
da0c8f78b4
commit
e672f41e71
@ -1,17 +0,0 @@
|
||||
const fs = require('fs').promises
|
||||
const path = require('path')
|
||||
const terseCssr = require('./utils/terse-cssr.js')
|
||||
const { walk } = require('../scripts/utils')
|
||||
|
||||
const dirs = ['es', 'lib'].map((d) => path.resolve(__dirname, '..', d))
|
||||
|
||||
;(async () => {
|
||||
for (const dir of dirs) {
|
||||
for await (const p of walk(dir)) {
|
||||
if (p.includes('.cssr.js')) {
|
||||
const code = await fs.readFile(p, 'utf-8')
|
||||
await fs.writeFile(p, terseCssr(code))
|
||||
}
|
||||
}
|
||||
}
|
||||
})()
|
@ -7,10 +7,9 @@
|
||||
"scripts": {
|
||||
"start": "npm run dev",
|
||||
"deprecated:build:icons": "npm run clean && node build/build-icons.js",
|
||||
"build:js": "npm run gen-version && npm run clean && tsc -p tsconfig.esm.json && tsc -p tsconfig.cjs.json && node build/terse-cssr.js",
|
||||
"build:package": "npm run gen-version && npm run clean && node build/build-icons.js && tsc -p tsconfig.esm.json && tsc -p tsconfig.cjs.json && node build/terse-cssr.js",
|
||||
"build:site": "./build/before-build-site.sh && node build/restore-side-effects.js && cross-env NODE_ENV=production NODE_OPTIONS=--max-old-space-size=4096 vite build && rm -rf node_modules/naive-ui && cp site/index.html site/404.html && node build/clear-side-effects.js",
|
||||
"build:doc": "npm run gen-version && npm run build && rm -rf build-doc/dist && cross-env NODE_ENV=production webpack --config build/webpack.doc.js",
|
||||
"build:js": "npm run gen-version && npm run clean && tsc -p tsconfig.esm.json && tsc -p tsconfig.cjs.json && node scripts/post-build",
|
||||
"build:package": "npm run gen-version && npm run clean && node build/build-icons.js && tsc -p tsconfig.esm.json && tsc -p tsconfig.cjs.json && node scripts/post-build",
|
||||
"build:site": "./scripts/pre-build-site.sh && node build/restore-side-effects.js && cross-env NODE_ENV=production NODE_OPTIONS=--max-old-space-size=4096 vite build && rm -rf node_modules/naive-ui && cp site/index.html site/404.html && node build/clear-side-effects.js",
|
||||
"clean": "rm -rf site lib es node_modules/naive-ui",
|
||||
"dev": "npm run clean && npm run gen-version && cross-env NODE_ENV=development vite",
|
||||
"dev:ts": "npm run clean && npm run gen-version && cross-env NODE_ENV=development TUSIMPLE=true vite",
|
||||
|
10
scripts/post-build.js
Normal file
10
scripts/post-build.js
Normal file
@ -0,0 +1,10 @@
|
||||
// terse cssr
|
||||
const { terseCssr } = require('./terse-cssr')
|
||||
|
||||
// replace __DEV__
|
||||
const { replaceDefine } = require('./replace-define')
|
||||
|
||||
;(async () => {
|
||||
await terseCssr()
|
||||
await replaceDefine()
|
||||
})()
|
30
scripts/replace-define.js
Normal file
30
scripts/replace-define.js
Normal file
@ -0,0 +1,30 @@
|
||||
const fs = require('fs').promises
|
||||
const { walk, outDirs } = require('./utils')
|
||||
|
||||
const alias = {
|
||||
__DEV__: "process.env.NODE_ENV !== 'production'"
|
||||
}
|
||||
|
||||
exports.replaceDefine = async () => {
|
||||
const aliasKeys = Object.keys(alias)
|
||||
const patterns = {}
|
||||
aliasKeys.forEach((key) => {
|
||||
patterns[key] = new RegExp(key, 'g')
|
||||
})
|
||||
for (const dir of outDirs) {
|
||||
for await (const p of walk(dir)) {
|
||||
const code = await fs.readFile(p, 'utf-8')
|
||||
for (const key of aliasKeys) {
|
||||
const pattern = patterns[key]
|
||||
if (pattern.test(code)) {
|
||||
const outCode = code.replace(pattern, alias[key])
|
||||
await fs.writeFile(p, outCode)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (require.main === module) {
|
||||
exports.replaceDefine()
|
||||
}
|
18
scripts/terse-cssr.js
Normal file
18
scripts/terse-cssr.js
Normal file
@ -0,0 +1,18 @@
|
||||
const fs = require('fs').promises
|
||||
const terseCssr = require('../build/utils/terse-cssr.js')
|
||||
const { walk, outDirs } = require('./utils')
|
||||
|
||||
exports.terseCssr = async () => {
|
||||
for (const dir of outDirs) {
|
||||
for await (const p of walk(dir)) {
|
||||
if (p.includes('.cssr.js')) {
|
||||
const code = await fs.readFile(p, 'utf-8')
|
||||
await fs.writeFile(p, terseCssr(code))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (require.main === module) {
|
||||
exports.terseCssr()
|
||||
}
|
@ -8,3 +8,5 @@ exports.walk = async function * walk (dir) {
|
||||
else if (d.isFile()) yield entry
|
||||
}
|
||||
}
|
||||
|
||||
exports.outDirs = ['es', 'lib'].map((d) => path.resolve(__dirname, '..', d))
|
||||
|
4
vue3.md
4
vue3.md
@ -434,7 +434,9 @@
|
||||
|
||||
## Build
|
||||
|
||||
package: tsx => es|lib => terse cssr => release site: build package => move to node_modules => setup side effects => vite build
|
||||
package: tsx => es|lib => terse cssr => replace global vars => release
|
||||
|
||||
site: build package => move to node_modules => setup side effects => vite build => release
|
||||
|
||||
## Info
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user