跳到主要内容

Nuxt.js将页面中css样式提取到一个css文件中

管

管理员

前端

2019年07月28日 3,254 次阅读
本页目录

看下未提取的css的部分源码

微信截图_20181008150955

实现将页面中css 提取到 link的方法比较简单:在nuxt.config.js下的build里添加 extractCSS: { allChunks: true }即可。

build: {
    extractCSS: { allChunks: true },
}

注意:npm run dev 启动项目后是没有任何变化,要先运行npm run build,在运行 npm start,就能成功了吧。(只有生产环境下有效)

优化后的代码:

 

原理

打开链接文档中有提到webpack的配(https://github.com/nuxt/nuxt.js/tree/master/lib/builder/webpack)

base.config.js

  // CSS extraction
  const extractCSS = this.options.build.extractCSS
  if (extractCSS) {
    const extractOptions = Object.assign(
      { filename: this.getFileName('css') },
      typeof extractCSS === 'object' ? extractCSS : {}
    )
    config.plugins.push(new ExtractTextPlugin(extractOptions))
  }

style-loader.js

// -- With extractCSS --
  // TODO: Temporary disabled in dev mode for fixing source maps
  // (We need `source-map` devtool for *.css modules)
  if (this.options.build.extractCSS && !this.options.dev) {
    // ExtractTextPlugin
    // https://github.com/webpack-contrib/extract-text-webpack-plugin
    const extractLoader = ExtractTextPlugin.extract({
      use: loaders,
      fallback: vueStyleLoader
    })

    // css-hot-loader
    // https://github.com/shepherdwind/css-hot-loader
    const hotLoader = {
      loader: 'css-hot-loader',
      options: { sourceMap }
    }

    return this.options.dev ? [hotLoader].concat(extractLoader) : extractLoader
  }

Related

相关文章

同分类文章 →
2025年06月10日 前端

gemini-2.5-pro-0605 按图生成html效果测试

Gemini 最新推出的 2.5 版本真的有点东西。之前用过不少 AI 辅助写代码的工具,但这次它的“图生 HTML”功能确实让我眼前一亮——上传一张设计图,它不仅能快速识别布局和元素,还能生成结构清晰、样

2025年03月14日 前端

css flex-1和overflow-hidden结合使用详解:弹性布局与内容溢出控制

在 Flexbox 布局中,flex: 1 和 overflow: hidden 是两个常用的属性,它们组合使用可以有效地控制子元素的尺寸和内容显示。flex: 1 的作用:当子元素设置 flex: 1 时,它会根据 Flex 容器的主轴方向,自动伸缩以填充剩余的可用

2025年03月13日 前端

Vue 3中实现处理后的v-model双向绑定

在Vue 3中,当你需要对v-model传入的值进行处理后再展示或使用时,可以使用计算属性的getter和setter来实现这种处理过程的双向绑定。 实现步骤 接收父组件传递的v-model值 创建计算属性,在getter中处理展示值,在setter中处

WeChat

扫码加我微信

微信二维码