'a'
mh-two-thousand-and-two
2024-04-12 44d2c92345cd156a59fc327b3060292a282d2893
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
const fs = require('fs')
const {
  parseTheme
} = require('@dcloudio/uni-cli-shared/lib/theme')
 
function generatePageCode (pages, pageOptions) {
  return pages.map(pagePath => {
    if (pageOptions[pagePath].nvue) {
      return ''
    }
    return `__definePage('${pagePath}',function(){return Vue.extend(require('${pagePath}.vue?mpType=page').default)})`
  }).join('\n')
}
 
function generateUniConfig (appJson, isAppView) {
  return isAppView ? `window.__uniConfig = ${JSON.stringify(
    {
      window: parseTheme(appJson.window),
      darkmode: appJson.darkmode
    }
  , null)};` : ''
}
 
function generatePolyfill () {
  return fs.readFileSync(require.resolve('@dcloudio/uni-cli-shared/lib/uni-polyfill.js'), { encoding: 'utf8' })
}
 
module.exports = function definePages (appJson, isAppView) {
  return {
    name: 'define-pages.js',
    content: `
${generatePolyfill()}
${generateUniConfig(appJson, isAppView)}
if(uni.restoreGlobal){
  uni.restoreGlobal(weex,plus,setTimeout,clearTimeout,setInterval,clearInterval)
}
${generatePageCode(appJson.pages, appJson.page)}
`
  }
}