Taro mini

2021-09-23 21:05 更新

mini

object

專屬于小程序的配置。

mini.compile

object

小程序編譯過程的相關(guān)配置。

mini.compile.exclude

array

配置小程序編譯過程中排除不需要經(jīng)過 Taro 編譯的文件,數(shù)組里面可以包含具體文件路徑,也可以是判斷函數(shù),同 Rule.exclude。

假設(shè)要排除某個(gè)文件,可以配置要排除的文件的具體路徑:

  1. module.exports = {
  2. // ...
  3. mini: {
  4. // ...
  5. compile: {
  6. exclude: [
  7. path.resolve(__dirname, '..', 'src/pages/index/vod-wx-sdk-v2.js')
  8. ]
  9. }
  10. }
  11. }

也可以配置判斷函數(shù):

  1. module.exports = {
  2. // ...
  3. mini: {
  4. // ...
  5. compile: {
  6. exclude: [
  7. modulePath => modulePath.indexOf('vod-wx-sdk-v2') >= 0
  8. ]
  9. }
  10. }
  11. }

mini.compile.incldue

array

配置額外需要經(jīng)過 Taro 編譯的文件,使用方式與 mini.compile.exclude 一致,同 Rule.include。

例如 Taro 默認(rèn)不編譯 node_modules 中的文件,可以通過這個(gè)配置讓 Taro 編譯 node_modules 中的文件。

mini.webpackChain

function

自定義 Webpack 配置。

這個(gè)函數(shù)會(huì)收到三個(gè)參數(shù)。第一個(gè)參數(shù)是 webpackChain 對(duì)象,可參考 webpack-chain 的 API 進(jìn)行修改,第二個(gè)參數(shù)是 webpack 實(shí)例,第三個(gè)參數(shù) PARSE_AST_TYPE 是小程序編譯時(shí)的文件類型集合。

第三個(gè)參數(shù)的取值如下:

  1. export enum PARSE_AST_TYPE {
  2. ENTRY = 'ENTRY',
  3. PAGE = 'PAGE',
  4. COMPONENT = 'COMPONENT',
  5. NORMAL = 'NORMAL',
  6. STATIC = 'STATIC'
  7. }

例子:

  1. // 這是一個(gè)添加 raw-loader 的例子,用于在項(xiàng)目中直接引用 md 文件
  2. module.exports = {
  3. // ...
  4. mini: {
  5. // ...
  6. webpackChain (chain, webpack) {
  7. chain.merge({
  8. module: {
  9. rules: {
  10. myloader: {
  11. test: /\.md$/,
  12. use: [{
  13. loader: 'raw-loader',
  14. options: {}
  15. }]
  16. }
  17. }
  18. }
  19. })
  20. }
  21. }
  22. }
  1. // 這是一個(gè)添加插件的例子
  2. module.exports = {
  3. // ...
  4. mini: {
  5. // ...
  6. webpackChain (chain, webpack) {
  7. chain.merge({
  8. plugin: {
  9. install: {
  10. plugin: require('npm-install-webpack-plugin'),
  11. args: [{
  12. // Use --save or --save-dev
  13. dev: false,
  14. // Install missing peerDependencies
  15. peerDependencies: true,
  16. // Reduce amount of console logging
  17. quiet: false,
  18. // npm command used inside company, yarn is not supported yet
  19. npm: 'cnpm'
  20. }]
  21. }
  22. }
  23. })
  24. }
  25. }
  26. }

mini.output

object

可用于修改、拓展 Webpack 的 output 選項(xiàng),配置項(xiàng)參考官方文檔。

mini.postcss

object

配置 postcss 相關(guān)插件。

  1. module.exports = {
  2. // ...
  3. mini: {
  4. // ...
  5. postcss: {
  6. // 可以進(jìn)行 autoprefixer 的配置。配置項(xiàng)參考官方文檔 https://github.com/postcss/autoprefixer
  7. autoprefixer: {
  8. enable: true,
  9. config: {
  10. // autoprefixer 配置項(xiàng)
  11. }
  12. },
  13. pxtransform: {
  14. enable: true,
  15. config: {
  16. // pxtransform 配置項(xiàng),參考尺寸章節(jié)
  17. selectorBlackList: ['body']
  18. }
  19. },
  20. // 小程序端樣式引用本地資源內(nèi)聯(lián)
  21. url: {
  22. enable: true,
  23. config: {
  24. limit: 10240 // 設(shè)定轉(zhuǎn)換尺寸上限
  25. }
  26. },
  27. // css modules 功能開關(guān)與相關(guān)配置
  28. cssModules: {
  29. enable: false, // 默認(rèn)為 false,如需使用 css modules 功能,則設(shè)為 true
  30. config: {
  31. generateScopedName: '[name]__[local]___[hash:base64:5]'
  32. }
  33. }
  34. }
  35. }
  36. }

mini.commonChunks

array | function

用于告訴 Taro 編譯器需要抽取的公共文件,支持兩種配置方式。

commonChunks 的配置值必須依據(jù)于 webpack 配置 optimization.runtimeChunkoptimization.splitChunks 中的公共 chunks 的名稱。Taro 中 webpack.optimization 配置的默認(rèn)值:源碼位置

如果有自行拆分公共文件的需求,請(qǐng)先通過 webpackChain 配置 覆蓋optimization.runtimeChunkoptimization.splitChunks 配置。再通過此 commonChunks 配置指定公共入口文件。

字符串?dāng)?shù)組方式

普通編譯時(shí)的默認(rèn)值:['runtime', 'vendors', 'taro', 'common']

編譯為微信小程序插件時(shí)的默認(rèn)值: ['plugin/runtime', 'plugin/vendors', 'plugin/taro', 'plugin/common']

可以傳入需要抽取的公共文件的名稱數(shù)組。

例子:

  1. module.exports = {
  2. // ...
  3. mini: {
  4. // ...
  5. commonChunks: ['runtime', 'vendors', 'taro', 'common']
  6. }
  7. }

這幾個(gè)公共文件分別表示:

  • runtime: webpack 運(yùn)行時(shí)入口
  • taro: node_modules 中 Taro 相關(guān)依賴
  • vendors: node_modules 除 Taro 外的公共依賴
  • common: 項(xiàng)目中業(yè)務(wù)代碼公共邏輯

函數(shù)方式

通過對(duì)入?yún)⒌哪J(rèn)公共文件數(shù)組進(jìn)行操作,返回新的數(shù)組來進(jìn)行配置,如下

  1. module.exports = {
  2. // ...
  3. mini: {
  4. // ...
  5. commonChunks (commonChunks) {
  6. // commonChunks 的取值即為默認(rèn)的公共文件名數(shù)組
  7. commonChunks.push('yourCustomCommonChunkName')
  8. return commonChunks
  9. }
  10. }
  11. }

mini.addChunkPages

function

為某些頁面單獨(dú)指定需要引用的公共文件。

例如在使用小程序分包的時(shí)候,為了減少主包大小,分包的頁面希望引入自己的公共文件,而不希望直接放在主包內(nèi)。那么我們首先可以通過 webpackChain 配置 來單獨(dú)抽離分包的公共文件,然后通過 mini.addChunkPages 為分包頁面配置引入分包的公共文件,其使用方式如下:

mini.addChunkPages 配置為一個(gè)函數(shù),接受兩個(gè)參數(shù)

  • pages 參數(shù)為 Map 類型,用于為頁面添加公共文件
  • pagesNames 參數(shù)為當(dāng)前應(yīng)用的所有頁面標(biāo)識(shí)列表,可以通過打印的方式進(jìn)行查看頁面的標(biāo)識(shí)

例如,為 pages/index/index 頁面添加 eatingmorning 兩個(gè)抽離的公共文件:

  1. module.exports = {
  2. // ...
  3. mini: {
  4. // ...
  5. addChunkPages (pages: Map<string, string[]>, pagesNames: string[]) {
  6. pages.set('pages/index/index', ['eating', 'morning'])
  7. }
  8. }
  9. }

mini.styleLoaderOption

object

style-loader 的附加配置。配置項(xiàng)參考官方文檔,例如:

  1. module.exports = {
  2. // ...
  3. mini: {
  4. // ...
  5. styleLoaderOption: {
  6. insertAt: 'top'
  7. }
  8. }
  9. }

mini.cssLoaderOption

object

css-loader 的附加配置。配置項(xiàng)參考官方文檔,例如:

  1. module.exports = {
  2. // ...
  3. mini: {
  4. // ...
  5. cssLoaderOption: {
  6. localIdentName: '[hash:base64]'
  7. }
  8. }
  9. }

mini.sassLoaderOption

object

sass-loader 的附加配置。配置項(xiàng)參考官方文檔,例如:

  1. module.exports = {
  2. // ...
  3. mini: {
  4. // ...
  5. sassLoaderOption: {
  6. implementation: require("dart-sass")
  7. }
  8. }
  9. }

mini.lessLoaderOption

object

less-loader 的附加配置。配置項(xiàng)參考官方文檔,例如:

  1. module.exports = {
  2. // ...
  3. mini: {
  4. // ...
  5. lessLoaderOption: {
  6. strictMath: true,
  7. noIeCompat: true
  8. }
  9. }
  10. }

mini.stylusLoaderOption

object

stylus-loader 的附加配置。配置項(xiàng)參考官方文檔

mini.miniCssExtractPluginOption

object

mini-css-extract-plugin 的附加配置,配置項(xiàng)參考官方文檔。

  1. module.exports = {
  2. // ...
  3. mini: {
  4. // ...
  5. miniCssExtractPluginOption: {
  6. filename: '[name].css',
  7. chunkFilename: '[name].css'
  8. }
  9. }
  10. }

mini.imageUrlLoaderOption

object

針對(duì) png | jpg | jpeg | gif | bpm | svg 文件的 url-loader 配置。配置項(xiàng)參考官方文檔

mini.mediaUrlLoaderOption

object

針對(duì) mp4 | webm | ogg | mp3 | wav | flac | aac 文件的 url-loader 配置。配置項(xiàng)參考官方文檔,例如:

  1. module.exports = {
  2. // ...
  3. mini: {
  4. // ...
  5. mediaUrlLoaderOption: {
  6. limit: 8192
  7. }
  8. }
  9. }

mini.fontUrlLoaderOption

object

針對(duì) woff | woff2 | eot | ttf | otf 文件的 url-loader 配置。配置項(xiàng)參考官方文檔。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)