mh-two-thousand-and-two
2024-04-12 3d2ec2fd0578d3ba0a414b0cc4e4a2ae60878596
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
const fileLoader = require('./file-loader.js')
 
const defaultOptions = {
  limit: -1,
  fallback: fileLoader
}
 
const inlineLimit =
  process.env.UNI_PLATFORM === 'mp-weixin' ||
  process.env.UNI_PLATFORM === 'mp-qq' ||
  process.env.UNI_PLATFORM === 'mp-toutiao' ||
  process.env.UNI_PLATFORM === 'mp-kuaishou' ||
  process.env.UNI_PLATFORM === 'mp-lark' ||
  process.env.UNI_PLATFORM === 'mp-jd' ||
  process.env.UNI_PLATFORM === 'mp-xhs' ||
  process.env.UNI_PLATFORM === 'app-plus' // v2需要base64,v3需要rewriteUrl
 
// mp-weixin,mp-qq,app-plus 非v3(即:需要base64的平台)
// 将/static/logo.png转换为~@/static/logo.png
// @import,src,background,background-image
 
const rewriteUrl = inlineLimit ? require('postcss-urlrewrite')({
  imports: true,
  properties: ['src', 'background', 'background-image'],
  rules: [{
    from: /^@\//,
    to: '~@/'
  }, {
    from: /^\/([^/])/,
    to: '~@/$1'
  }]
}) : () => {}
 
module.exports = {
  loader: 'url-loader',
  options () {
    if (process.env.UNI_PLATFORM === 'h5') {
      // h5平台,不对 url-loader 作调整,默认limit:4096,也不修改file-loader输出路径(已做处理)
      return {
        ...defaultOptions,
        limit: 4096
      }
    }
    if (inlineLimit) {
      return {
        ...defaultOptions,
        limit: process.env.UNI_USING_V3 ? -1 : 40960 // (主要用于background-image)
      }
    }
    return {
      ...defaultOptions
    }
  },
  rewriteUrl
}