logo
  • 指南
  • 配置
  • 插件
  • API
  • 示例
  • 社区
  • Modern.js 2.x 文档
  • 简体中文
    • 简体中文
    • English
    • 配置使用
      dev
      assetPrefix
      beforeStartUrl
      client
      hmr
      host
      https
      lazyCompilation
      liveReload
      port
      progressBar
      setupMiddlewares
      startUrl
      watchFiles
      writeToDisk
      bff
      prefix
      html
      appIcon
      crossorigin
      favicon
      inject
      meta
      mountId
      outputStructure
      scriptLoading
      tags
      templateParameters
      template
      title
      tools
      autoprefixer
      babel
      bundlerChain
      cssExtract
      cssLoader
      devServer
      htmlPlugin
      less
      lightningcssLoader
      minifyCss
      postcss
      rspack
      sass
      styleLoader
      swc
      tsChecker
      source
      aliasStrategy
      alias
      configDir
      decorators
      define
      disableDefaultEntries
      enableAsyncEntry
      entriesDir
      entries
      exclude
      globalVars
      include
      mainEntryName
      preEntry
      transformImport
      resolve
      aliasStrategy
      alias
      conditionNames
      dedupe
      extensions
      server
      baseUrl
      port
      publicRoutes
      routes
      ssrByEntries
      ssr
      output
      assetPrefix
      assetsRetry
      charset
      cleanDistPath
      convertToRem
      copy
      cssModules
      dataUriLimit
      disableCssModuleExtension
      disableInlineRuntimeChunk
      disableSvgr
      disableTsChecker
      distPath
      enableAssetManifest
      enableCssModuleTSDeclaration
      disableInlineRouteManifests
      externals
      filenameHash
      filename
      injectStyles
      inlineScripts
      inlineStyles
      legalComments
      minify
      overrideBrowserslist
      polyfill
      sourceMap
      splitRouteChunks
      ssg
      ssgByEntries
      svgDefaultExport
      tempDir
      plugins
      security
      checkSyntax
      nonce
      sri
      runtime
      介绍
      plugins
      router
      performance
      buildCache
      bundleAnalyze
      chunkSplit
      dnsPrefetch
      preconnect
      prefetch
      preload
      printFileSize
      profile
      removeConsole
      removeMomentLocale
      experiments
      sourceBuild
      builderPlugins
      📝 编辑此页面
      上一页cleanDistPath下一页copy

      #output.convertToRem

      • 类型: boolean | object
      • 默认值: false

      通过设置 output.convertToRem,Modern.js 可进行如下处理:

      • 将 CSS 中的 px 转成 rem
      • 在 HTML 模版中插入运行时代码,对根元素 fontSize 进行设置

      #Boolean 类型

      当设置 output.convertToRem 为 true,将开启 rem 处理能力。

      export default {
        output: {
          convertToRem: true,
        },
      };

      此时,rem 配置默认如下:

      {
        enableRuntime: true,
        rootFontSize: 50,
        screenWidth: 375,
        rootFontSize: 50,
        maxRootFontSize: 64,
        widthQueryKey: '',
        excludeEntries: [],
        supportLandscape: false,
        useRootFontSizeBeyondMax: false,
        pxtorem: {
          rootValue: 50,
          unitPrecision: 5,
          propList: ['*'],
        }
      }

      #Object 类型

      当 output.convertToRem 的值为 object 类型时,Modern.js 会根据当前配置进行 rem 处理。

      选项:

      名称类型默认值描述
      enableRuntimebooleantrue是否自动生成 runtime 代码来动态计算根元素字体大小
      inlineRuntimebooleantrue是否将 runtime 代码内联到 HTML 文件中。如果设置为 false,运行时代码会被抽取为一个独立的 convert-rem.[version].js 文件,并输出到产物目录下
      rootFontSizenumber50根元素字体值
      maxRootFontSizenumber64最大根元素字体值
      widthQueryKeystring'' 根据 widthQueryKey 的值去 url query 中取 client width
      screenWidthnumber375UI 设计图宽度
      excludeEntriesstring[][]设置不注入 runtime 代码的页面入口,通常需要配合 pxtorem.exclude 使用
      supportLandscapebooleanfalse横屏时使用 height 计算 rem
      useRootFontSizeBeyondMaxbooleanfalse超过 maxRootFontSize 时,是否使用 rootFontSize
      pxtoremobject
      • rootValue。默认与 rootFontSize 相同
      • unitPrecision: 5。精确位数
      • propList: ['*']。支持转换的 CSS 属性
      postcss-pxtorem 插件属性

      #示例

      export default {
        output: {
          convertToRem: {
            rootFontSize: 30,
            excludeEntries: ['404', 'page2'],
            pxtorem: {
              propList: ['font-size'],
            },
          },
        },
      };

      详细用法可参考 rsbuild-plugin-rem。