build.js 2.4 KB
Newer Older
fxy060608's avatar
fxy060608 已提交
1 2 3 4 5 6
const {
  error
} = require('@vue/cli-shared-utils')

const Service = require('@vue/cli-service')

Q
qiang 已提交
7 8 9 10 11
const del = require('del')
const copy = require('copy')
const path = require('path')
const jsonfile = require('jsonfile')

fxy060608's avatar
fxy060608 已提交
12 13 14 15
const {
  generateApiManifest
} = require('./manifest')

fxy060608's avatar
fxy060608 已提交
16 17 18
const service = new Service(process.env.VUE_CLI_CONTEXT || process.cwd(), {
  inlineOptions: require('./vue.config.js')
})
fxy060608's avatar
fxy060608 已提交
19 20
// 删除 cache 目录
del.sync(['node_modules/.cache'])
fxy060608's avatar
fxy060608 已提交
21

fxy060608's avatar
init v3  
fxy060608 已提交
22 23
let name = 'index'
let filename = ''
fxy060608's avatar
fxy060608 已提交
24 25 26 27 28 29
let entry = './lib/' + process.env.UNI_PLATFORM + '/main.js'

if (process.env.UNI_PLATFORM === 'h5' && process.env.UNI_UI === 'true') {
  entry = './lib/' + process.env.UNI_PLATFORM + '/ui.js'
}

fxy060608's avatar
fxy060608 已提交
30
let formats = process.env.UNI_WATCH === 'true' ? 'umd' : 'umd-min'
fxy060608's avatar
init v3  
fxy060608 已提交
31 32 33
if (process.env.UNI_PLATFORM === 'app-plus' && process.env.UNI_VIEW === 'true') {
  name = 'uni'
  filename = 'view'
fxy060608's avatar
fxy060608 已提交
34
  formats = 'umd'
fxy060608's avatar
init v3  
fxy060608 已提交
35 36
  entry = './lib/' + process.env.UNI_PLATFORM + '/view.js'
}
fxy060608's avatar
fxy060608 已提交
37
service.run('build', {
fxy060608's avatar
init v3  
fxy060608 已提交
38 39
  name,
  filename,
fxy060608's avatar
fxy060608 已提交
40 41
  watch: process.env.UNI_WATCH === 'true',
  target: 'lib',
fxy060608's avatar
fxy060608 已提交
42
  formats,
fxy060608's avatar
init v3  
fxy060608 已提交
43
  entry,
fxy060608's avatar
fxy060608 已提交
44
  clean: !process.env.UNI_VIEW,
雪洛's avatar
雪洛 已提交
45
  mode: process.env.NODE_ENV
fxy060608's avatar
fxy060608 已提交
46
}).then(function() {
47 48 49 50 51
  if (
    process.env.UNI_WATCH !== 'true' &&
    process.env.UNI_UI !== 'true' &&
    process.env.UNI_VIEW !== 'true'
  ) {
fxy060608's avatar
fxy060608 已提交
52 53 54 55 56
    generateApiManifest(
      JSON.parse(JSON.stringify(process.UNI_SERVICE_API_MANIFEST)),
      JSON.parse(JSON.stringify(process.UNI_SERVICE_API_PROTOCOL))
    )
  }
fxy060608's avatar
fxy060608 已提交
57 58 59
}).catch(err => {
  error(err)
  process.exit(1)
Q
qiang 已提交
60 61
})

fxy060608's avatar
init v3  
fxy060608 已提交
62
if (process.env.UNI_PLATFORM === 'h5' && process.env.UNI_WATCH === 'false') {
Q
qiang 已提交
63 64 65 66
  const packagePath = path.join(__dirname, `../packages/uni-${process.env.UNI_PLATFORM}`)
  const packageJsonPath = path.join(packagePath, 'package.json')
  del(path.join(packagePath, '{lib,src}'))
    .then(() => {
fxy060608's avatar
fxy060608 已提交
67
      copy([path.join(__dirname, '../{lib,src}/**/*')], packagePath, function(err, file) {
Q
qiang 已提交
68 69 70 71 72 73 74 75 76 77 78 79 80 81
        if (err) {
          throw err
        }
      })
    })
  jsonfile.readFile(path.join(__dirname, '../package.json'))
    .then(origin => {
      return jsonfile.readFile(packageJsonPath)
        .then(obj => {
          obj.dependencies = origin.dependencies
          return obj
        })
    })
    .then(obj => {
fxy060608's avatar
fxy060608 已提交
82 83 84
      return jsonfile.writeFile(packageJsonPath, obj, {
        spaces: 2
      })
Q
qiang 已提交
85 86 87 88
    })
    .catch(err => {
      throw err
    })
fxy060608's avatar
fxy060608 已提交
89
}