首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Laravel webpack mix编译后删除CSS变量

基础概念

Laravel Mix 是 Laravel 框架中的一个构建工具,它基于 Webpack 构建,用于简化前端资源的编译和打包过程。CSS 变量(也称为自定义属性)是一种在 CSS 中定义和使用变量的机制,可以提高样式的可维护性和复用性。

相关优势

  1. 提高代码复用性:通过 CSS 变量,可以在多个地方使用相同的值,减少重复代码。
  2. 易于维护:修改一个 CSS 变量的值,可以同时影响所有使用该变量的样式。
  3. 灵活性:可以根据不同的条件或媒体查询动态改变 CSS 变量的值。

类型

CSS 变量主要有两种类型:

  1. 全局变量:在 :root 选择器中定义的变量,可以在整个文档中使用。
  2. 局部变量:在特定选择器中定义的变量,只能在该选择器及其子元素中使用。

应用场景

CSS 变量广泛应用于主题切换、响应式设计、动态样式调整等场景。

问题:Laravel Mix 编译后删除 CSS 变量

原因

Laravel Mix 在编译 CSS 时,默认情况下不会删除 CSS 变量。如果发现 CSS 变量被删除,可能是由于以下原因:

  1. CSS 预处理器插件:某些 CSS 预处理器插件可能会在编译过程中删除 CSS 变量。
  2. PostCSS 插件:PostCSS 是一个用于转换 CSS 的工具,某些 PostCSS 插件可能会删除 CSS 变量。

解决方法

  1. 检查 PostCSS 插件: 确保没有使用会删除 CSS 变量的 PostCSS 插件。可以在 postcss.config.js 文件中检查配置:
  2. 检查 PostCSS 插件: 确保没有使用会删除 CSS 变量的 PostCSS 插件。可以在 postcss.config.js 文件中检查配置:
  3. 使用 postcss-custom-properties 插件: 如果需要确保 CSS 变量不被删除,可以使用 postcss-custom-properties 插件:
  4. 使用 postcss-custom-properties 插件: 如果需要确保 CSS 变量不被删除,可以使用 postcss-custom-properties 插件:
  5. 然后在 postcss.config.js 中添加该插件:
  6. 然后在 postcss.config.js 中添加该插件:
  7. 检查 Laravel Mix 配置: 确保 Laravel Mix 的配置没有问题。可以在 webpack.mix.js 文件中检查:
  8. 检查 Laravel Mix 配置: 确保 Laravel Mix 的配置没有问题。可以在 webpack.mix.js 文件中检查:

示例代码

假设你有一个 app.scss 文件,其中定义了一些 CSS 变量:

代码语言:txt
复制
:root {
    --primary-color: #3490dc;
    --secondary-color: #ffed4a;
}

body {
    background-color: var(--primary-color);
    color: var(--secondary-color);
}

确保在 webpack.mix.js 中正确配置 PostCSS 插件:

代码语言:txt
复制
const mix = require('laravel-mix');

mix.js('resources/js/app.js', 'public/js')
   .sass('resources/sass/app.scss', '                                        public/css')
   .options({
       postCss: [
           require('postcss-custom-properties')()
       ]
   });

参考链接

通过以上步骤,你应该能够解决 Laravel Mix 编译后删除 CSS 变量的问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Laravel 项目中使用 Bootstrap 框架

    Laravel Mix 是对 Webpack 进行封装提供给 Laravel 项目使用的前端打包工具,Webpack 是目前最新的、广泛使用的前端资源打包工具(之前还有 Grunt、Gulp 等),能够以模块方式处理所有前端资源...,Laravel Mix 对其提供的功能进行了封装从而避免后端开发人员大量编写 Webpack 配置命令,大多数时候我们需要在 resources/js/app.js 和 resources/sass/...Laravel Mix 的配置文件就是项目根目录下的 webpack.mix.js: const mix = require('laravel-mix'); mix.js('resources/js/...laravel-mix 库,然后运用它提供的 js 和 sass 方法将 resources/js/app.js 编译打包输出到 public/js/app.js,将 resources/sass/...app.scss (Sass文件)编译打包输出到 public/css/app.css: 这样,我们就可以项目的前端文件下引入 /css/app.css 和 /js/app.js 使用 Bootstrap

    3.4K31

    Laravel 项目中使用 webpack-encore

    看过我之前写过的博客的应该知道我一直是 laravel-mix 的死忠粉,有好几篇文章都是关于它的。每每提到 laravel-mix 时更是不吝溢美之词。...正所谓爱之深,责之切,在对 laravel-mix 表示失望之后,我翻出了自己 star 多时的另一包 webpack-encore,虽说很早就 star 了,但之前却没试用过它,可能也是因为对于 laravel-mix...laravel-mix 迁移到 webpack-encore,只用了几个小时,并且期间相当顺利。...而我迁移的这个项目,是一个 Laravel 项目,所以下面就分享下,如果在 Laravel 项目中使用 webpack-encore 替代 laravel-mix。...自带了一个 mix() 函数用于引用 mix 编译的资源,与之类似,syfony 也有这样的函数,而且更为方便。

    2.1K20

    引入 Laravel Mix 管理前端资源

    对其这些前端资源进行编译、打包、压缩、分发,变成最终可用的静态资源文件。...如果要完整介绍并构建这样的一套前端开发环境,需要引入很多额外的篇幅和前端知识,好在 Laravel 生态提供了一个 Laravel Mix 组件,该组件对 Webpack 的构建步骤做了封装,提供了一套非常简单的流式...API 帮助我们对 CSS 和 JavaScript 资源文件进行预处理,细节可参考 Mix 官方文档。.../webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js" },...这样一来,我们就可以在项目中基于 Laravel Mix 管理前端资源了。 下篇教程,我们将基于 Laravel Mix 为博客项目替换主题。 (全文完)

    1.6K20

    让 F5 歇一会儿——laravel-mix 自动刷新之道

    laravel-mix 自称 An elegant wrapper around Webpack for the 80% use case ,其功能确实强大,它对于前端开发工作流的考虑也是非常全面,可以通过...修改相关文件关保存,webpack 将会自动编译修改的文件,完成之后页面将自动刷新。(如果修改的是后端文件,则直接刷新) ?...在 webpack.mix.js 中根据实际场景配置 hmr 参数 // 配置 hmr 参数 mix.options({ hmrOptions: { host: 'laravel-mix-autoreload-demo.test...安装依赖 // laravel-mix v4 yarn add -D webpack-livereload-plugin // laravel-mix v3 或更早 yarn add -D webpack-livereload-plugin...打开页面,修改页面引用的前端资源(如 js,css)并保存,页面将自动刷新 因为使用 laravel-mix 编译,一般修改 resource/ 目录下的文件,但实际上直接修改 public/ 目录中的文件也是可以触发刷新的

    2.3K20

    引入 SB Admin 2 作为后台管理系统主题

    1、下载 SB Admin 2 主题 完全前端基本功能之后,接下来,我们来构建这个 PHP 博客项目后台管理系统,主要包含登录认证,仪表盘页面,专辑、文章的创建、修改和删除,以及消息后台查看等功能。...Mix 编译前端资源 做好以上准备工作,就可以在 webpack.mix.js 中将上述资源文件编译打包为对应的 JavaScript 和 Css 代码了: const mix = require(...'laravel-mix') // 编译前台资源 ... // 编译后台资源 mix.js('resources/js/admin.js', 'public/js/admin.js') .js...'); mix.copy('node_modules/@fortawesome/fontawesome-free/css/all.css', 'public/css/fontawesome.css')...index.php', compact('pageTitle', 'siteName')); } } 这里我们只是简单传入页面标题和站点名称到 admin/index.php 视图模板,用于填充对应的变量

    4.1K10

    将博客主题替换成 Clean Blog

    在 public 目录下新建 js 子目录用于存放编译打包的 JavaScript 脚本文件。...,通过 Laravel Mix编译打包这些预处理 js 文件: const mix = require('laravel-mix') mix.js('resources/js/app.js', '...public/js'); 上述代码的含义是引入 Laravel Mix,然后通过它提供的 js 方法将 resources/js/app.js 进行编译打包,然后将处理的 app.js 文件分发到...然后在 webpack.mix.js 中补充对应的处理逻辑: const mix = require('laravel-mix') mix.js('resources/js/app.js', 'public...5、编译前端资源文件 完成以上编码就可以在项目根目录下执行 npm run dev 编译打包前端资源了: ? 编译成功,就可以在 public 目录下看到对应的新文件了: ?

    72920

    前后端分离探索——MVC 项目升级的一个过渡方案

    MVC 项目直接升级到前后端分离需要大量的时间与人力,在业务多变的阶段并不适合,所以便有了本文的过渡方案探索 路由先不分离,仍然采用 PHP 提供的路由 模板部分分离,在原 PHP 模板中,引入 Vue 编译的模板...Laravel Mix 工具,这会节省大量前端配置时间 根目录新建文件 webpack.mix.js const fs = require('fs'); const mix = require('laravel-mix...# 局限 不能做到全局自动加载组件 编译的文件大小可能会很大 # 优势 可以更好地编写复杂的页面 更好的维护性 # 权限交互 ?...# 更新 2020/03/13 随着页面重构,文件越来越多,导致编译总文件大小足足 150 M,而且 Git 合并困难,大大降低了开发效率和前端性能,这明显不合预期; 分析原因:每个页面都引入了公共模块.../resources/js 文件夹可以删掉了,编译的总文件大小约 2.5 M 至此,优化完成,完美解决了开发流程的痛点 # 后记 目前仍在不断地探索中

    1.2K20

    创建并运行一个新的 Laravel 项目

    安装完成,后续就可以通过 laravel new [项目名称] 来创建新的 Laravel 项目了: laravel new blog 该命令会在当前目录下创建一个新的名为 blog 的应用: ?...2、Laravel 应用的目录结构 安装完成,我们来看一下新安装 Laravel 项目 blog 的目录结构: ?...资源文件,如视图模板、语言文件、待编译的 Vue 模板、Sass、JS 源文件 routes:项目的所有路由文件都定义在这里 storage:用于存放缓存、日志、上传文件、已经编译过的视图模板等 tests...artisan 执行 Artisan 命令 .gitignore 和 .gitattributes:Git 配置文件 composer.json 和 composer.lock:Composer 配置文件 webpack.mix.js...:Laravel Mix Webpack 配置文件,用于编译和打包前端资源 package.json:配置前端资源依赖和脚本(类似于 composer.json 之于 PHP) phpunit.xml:

    6.8K30

    Homestead + laravel-mix 环境下 hmr 的两种玩法

    我在前几天刚写过的《让 F5 歇一会儿——laravel-mix 自动刷新之道》[1]中介绍了 laravel-mix 实现自动刷新的几种方法,其中就有涉及 hmr(Hot Module Replacement...1.vagrant ssh 连接虚拟机,进入项目目录安装前端依赖 yarn install 2.在 webpack.mix.js 中调整相关配置 使用 mix.Webpack() 配置 devServer...在虚拟机终端中执行yarn run hot,然后在浏览器中使用绑定的测试域名(如:laravel.test)访问 34.修改 JS 等,自动编译浏览器中页面即自动更新 玩法二:使用宿主机中的 Node...1.从宿主机终端进入项目目录并安装前端依赖 yarn install 2.webpack.mix.js 中使用 webpackConfig 进行配置 mix.webpackConfig({ devServer...修改 JS 等,自动编译浏览器中页面即自动更新 总结 两种方法并没有谁好谁坏之分,具体使用哪种方法视具体场景及个人喜好而定。

    1.6K10

    CSS编译语言 Sass 快速入门教程

    1、CSS编译语言概述 CSS 作为一门样式语言,语法简单,易于上手,但是由于不具备常规编程语言提供的变量、函数、继承等机制,因此很容易写出大量没有逻辑、难以复用和扩展的代码,在日常开发使用中,如果没有完善的编码规范...编写好 Sass 文件,需要将其编译CSS 文件才能在项目中使用,为此我们需要安装相应的编译工具,Sass 官方解释器通过 Ruby 编写,同时也有其他语言实现的版本,最常见的就是 C 语言实现的...Mix 进行前端资源的编译,当我们通过 npm install 安装 laravel-mix 的过程中,系统会自动安装 laravel-mix 声明的依赖,其中就包括了编译 Sass 所需要的 node-sass...,我们无需再额外安装这个扩展包,这些事情 Laravel Mix 在底层默默帮我们完成了。...Mix 编译的时候将其编译到指定的 CSS 文件中。

    7.1K41

    Laravel框架下载,安装及路由操作图文详解

    目录七:storage 编译的视图、基于会话、文件缓存和其它框架生成的文件 ? 目录八:text 应用测试相关文件 ? 目录九:vendor Composer 依赖模块 ?...) readme.md 项目介绍说明文件 resources 应用资源 resources/assets 未编译的应用资源文件(图片、JavaScript、CSS) resources/lang 多语言文件...用于定义 Web 类型的路由(重点,大部分情况下本书会用到) server.php 使用 PHP 内置服务器时的 URL 重写(类似于 Apache 的 “mod_rewrite” ) storage 编译的视图...目录可用于存储应用程序使用的任何文件 storage/framework 目录被用于保存框架生成的文件及缓存 storage/logs 应用程序的日志文件 tests 应用测试相关文件 vendor Composer 依赖模块 webpack.mix.js...Laravel 的前端工作流配置文件 yarn.lock Yarn 依赖版本锁定文件 .gitignore 被 Git 所忽略的文件 .env 环境变量配置文件 更多关于Laravel相关内容感兴趣的读者可查看本站专题

    4.6K51

    docker学习系列11 多阶段镜像构建

    在日常构建容器的场景中,经常会遇到在同一个容器中进行源码的获取,编译和生成,最终才构建为镜像。...不得不在同一个容器中,获取程序的源码和构建所需的一些生态工具 构建出的镜像甚至包含了程序源码和一些不必要的文件,导致容器镜像尺寸偏大 当然,还有一种稍微优雅的方式,就是我们事先在外部将项目及其依赖库编译测试打包好...再来一个Laravel项目的多阶段构建( 自己加的内容) 第一阶段:使用compose安装PHP依赖 第二阶段:安装node,并安装前端依赖然后生成编译的文件 第三阶段:拷贝PHP依赖及前端build...prefer-dist # # Frontend # FROM node:8.11 as frontend RUN mkdir -p /app/public COPY package.json webpack.mix.js.../ /var/www/html/public/css/ COPY --from=frontend /app/mix-manifest.json /var/www/html/mix-manifest.json

    80320
    领券