Prechádzať zdrojové kódy

fix: 用户选择打包时nodejs参数bug

lvkun996 2 rokov pred
rodič
commit
891ccac59a
4 zmenil súbory, kde vykonal 33 pridanie a 15717 odobranie
  1. 1 15672
      package-lock.json
  2. 1 0
      package.json
  3. 29 39
      plugins/build.js
  4. 2 6
      plugins/user-option.js

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 1 - 15672
package-lock.json


+ 1 - 0
package.json

@@ -35,6 +35,7 @@
     "flicker-vue-hooks": "^1.0.16",
     "html2canvas": "^1.4.1",
     "inquirer": "^8.2.6",
+    "minimist": "^1.2.8",
     "mitt": "^3.0.0",
     "normalize.css": "^8.0.1",
     "path-browserify": "^1.0.1",

+ 29 - 39
plugins/build.js

@@ -1,66 +1,54 @@
 const fs = require('fs')
 const { exec } = require('child_process')
 const { resolve, join } = require('path')
+const minimist = require('minimist')
 
-const args = process.argv.slice(2)
+const args = minimist(process.argv.slice(2))
 
-console.log(args.map((arg) => arg))
-
-const userOptions = {}
+const rootPath = join(__dirname, '..')
 
-args.forEach((arg) => {
-  const [key, value] = arg.split(':')
-  if (key === 'package') {
-    userOptions[key] = value.replaceAll('、', ',')
-  } else {
-    userOptions[key] = value
-  }
-})
+const userOptions = {
+  logo: args.logo === 'yes',
+  package: args.package.split(','),
+  platform: args.platform
+}
 
 console.log('读取脚本参数中 🤬')
 
 console.log(userOptions.logo ? '去掉logo...' : '保留logo...')
 
-const rootPath = join(__dirname, '..')
-
-const AppConfigFs = fs.readFileSync(resolve(rootPath, 'config/defaultSetting.ts'), 'utf8')
+console.log('打包' + userOptions.package + '等模块中')
 
-const AppConfigFsr = AppConfigFs.replace(
-  `export default {
-    appName: '蛟龙云',
-    userInfoHidden: false,
-    documentIco: '',
-    logoExpand: require('@/static/logo-big.png'),
-    logoContract: require('@/static/logo.png'),
-    logout: ''
-  }`,
-  `export default {
-    appName: '',
-    userInfoHidden: true,
-    documentIco: '',
-    logoExpand: '',
-    logoContract: '',
-    logout: ''
-  }`
-)
+console.log('打包至' + userOptions.platform + '平台')
 
-fs.writeFileSync(resolve(rootPath, 'config/defaultSetting.ts'), AppConfigFsr, 'utf-8')
+const AppConfigFs = fs.readFileSync(resolve(rootPath, 'config/defaultSetting.ts'), 'utf8')
 
-console.log('打包' + userOptions.package + '等模块中')
+if (userOptions.logo) {
+  const AppConfigFsr =
+`export default {
+  appName: '',
+  userInfoHidden: true,
+  documentIco: '',
+  logoExpand: '',
+  logoContract: '',
+  logout: ''
+}
+`
 
-console.log('打包至' + userOptions.platform + '平台')
+  console.log('写入地址:', resolve(rootPath, 'config/defaultSetting.ts'))
+  fs.writeFileSync(resolve(rootPath, 'config/defaultSetting.ts'), AppConfigFsr, 'utf-8')
+}
 
 const file = fs.readFileSync(resolve(rootPath, 'src/router/index.ts'), 'utf8')
 
 const r = file.replace(
   'const _routes = [iot, schedule, view, lowcode, user, login]',
-  `const _routes = [${userOptions.package}]`
+  `const _routes = ${userOptions.package}`
 )
 
-console.log('修改路由值成功 🌹')
-
 fs.writeFileSync(resolve(rootPath, 'src/router/index.ts'), r, 'utf-8')
 
+console.log('修改路由值成功 🌹')
 console.log('开始打包  📦')
 console.log('打包中...... 💪')
 
@@ -69,9 +57,11 @@ if (userOptions.platform === 'web') {
     if (error) {
       console.error(`执行脚本时出错:${error}`)
       fs.writeFileSync(resolve(rootPath, 'src/router/index.ts'), file, 'utf-8')
+      userOptions.logo && fs.writeFileSync(resolve(rootPath, 'config/defaultSetting.ts'), AppConfigFs, 'utf-8')
     } else {
       console.log('打包成功 🎉')
       fs.writeFileSync(resolve(rootPath, 'src/router/index.ts'), file, 'utf-8')
+      userOptions.logo && fs.writeFileSync(resolve(rootPath, 'config/defaultSetting.ts'), AppConfigFs, 'utf-8')
     }
   })
 } else {

+ 2 - 6
plugins/user-option.js

@@ -46,13 +46,9 @@ const promptList = [
 prompt(promptList).then((res) => {
   const package = res.package.includes('全部') ? routes : res.package.map(item => packageMap.get(item))
 
-  const userOPtions = JSON.stringify({
-    logo: res.logo === 'yes',
-    package: [(package.length === 0 ? routes : package).join('、')],
-    platform: res.platform
-  })
+  const userOptionsStr = `--logo=${res.logo} --package=${package.length === 0 ? routes : package} --platform=${res.platform}`
   console.log('重写配置项中......')
-  exec('node plugins/build.js ' + userOPtions, (error, stdout, stderr) => {
+  exec('node plugins/build.js ' + userOptionsStr, (error, stdout, stderr) => {
     console.log(error)
     console.log(stdout)
     console.log(stderr)

Niektoré súbory nie sú zobrazené, pretože je v týchto rozdielových dátach zmenené mnoho súborov