返回顶部
首页 > 资讯 > 精选 >laravel mix的作用是什么
  • 179
分享到

laravel mix的作用是什么

2023-07-05 00:07:26 179人浏览 独家记忆
摘要

这篇文章主要介绍“laravel mix的作用是什么”,在日常操作中,相信很多人在laravel mix的作用是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”laravel mix的作用是什么”的疑惑有所

这篇文章主要介绍“laravel mix的作用是什么”,在日常操作中,相信很多人在laravel mix的作用是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”laravel mix的作用是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

laravel mix用于管理前端任务,它是一款前端任务自动化管理工具,可使用工作流的模式对制定好的任务依次执行;Mix提供了简洁流畅的api,让开发者能够为Laravel应用定义webpack编译任务,可以轻松地管理前端资源。

laravel mix是什么?有什么用?

Laravel Mix 一款前端任务自动化管理工具,使用了工作流的模式对制定好的任务依次执行。Mix 提供了简洁流畅的 API,让你能够为你的 Laravel 应用定义 WEBpack 编译任务。Mix 支持许多常见的 CSSjavascript 预处理器,通过简单的调用,你可以轻松地管理前端资源。

默认文件和文件夹结构

默认 Sass 文件在 resources/assets/sass/app.scss  中(文件的内容是完全一样的),而默认的 js 文件在 resources/assets/js/app.js(因为文件是完全相同的,所以想要学习更多关于 Vue 在 5.3 中的基础结构,可以查看 Matt Stauffer 写的 5.3 的前端结构 这一帖子)。

如果你深入到 app.js 中引用的 bootstrap 文件( resources/assets/js/bootstrap.js ),你会看到我们使用AxiOS 而不是 Vue-Resource 来设置 X-CSRF-TOKEN( Vue-Resource 在 2016 年之后将不再工作)。

如果你在 Mix 的项目上运行 npm run dev,可以看到:

laravel mix的作用是什么

默认情况下,我们生成的文件的位置与 Elixir 相同:public/css/app.css  和 public/js/app.js

主要 Mix 方法

正如你所见,你可以轻松的使用 Mix 处理 Sass 和 JS。Sass,显而易见,运行 Sass 文件,并将其输出为 CSS。用  JS 方法支持 ECMAScript 2015 语法、编译 .vue 文件、针对生产环境压缩代码以及对 JavaScript 文件进行其他处理。

还可以用 .less 方法将 Less 编译为 CSS:

mix.less('resources/assets/less/app.less', 'public/css');

combine 方法将文件组合在一起:

mix.combine([    'public/css/vendor/Jquery-ui-one-thing.css',    'public/css/vendor/jquery-ui-another-thing.css'], 'public/css/vendor.css');

copy 复制文件或目录:

mix.copy('node_modules/jquery-ui/some-theme-thing.css', 'public/css/some-jquery-ui-theme-thing.css');mix.copy('node_modules/jquery-ui/css', 'public/css/jquery-ui');

与 Elixir 不同,Source Maps 默认情况下是关闭的,可以在 webpack.mix.js 中调用以下方法来开启:

mix.sourceMaps();

默认情况下 Mix 会以系统通知的方式告知你编译结果,如果不希望它们运行,可以使用 disableNotifications() 方法禁用。

Mix.manifest.JSON  和 缓存清除

熟悉 Elixir 的人可能会注意到上面的输出图像有一点与 Elixir 不同:Mix 正在生成一个开箱即用的清单文件 public/mix-manifest.json。 当然,Elixir 也会生成清单文件:public/build/rev-manifest.json,与 Mix 直接生产不同,它只会在确定启用了缓存清除(版本控制)的功能时生成它。

这些清单文件是用来映射前端文件与已经版本化处理的前端文件副本,例如: /js/app.js/js/app-86ff5d31a2.js 之间的映射。有了这个文件就可以在 HTLM 用简单的引用指向该引用的版本化文件。例如 <script src ="{{ mix('js/app.js') }}">

不像 Elixir,即使你不使用缓存清除,Mix 都会生成这个文件,但它也仅仅只是一个导向地图:

{  "/js/app.js": "/js/app.js",  "/css/app.css": "/css/app.css"}

对于以前使用 Elixir 的用户来说,另一个有趣的变化是:你的构建文件现在最终在正常的输出目录,而不是单独的构建目录,所以你版本化的 JS 文件,将出现在 public/js/app-86ff5d31a2.js

要在 Mix 中启用缓存清除,只需在 Mix 文件中附加 .version()

mix.js('resources/assets/js/app.js', 'public/js')    .sass('resources/assets/sass/app.scss', 'public/css')    .version();

这比传递实际文件名要简单得多,就像在 Elixir 中一样。

mix() 帮助

正如上面提到的,你要使用 mix() 来代替 elixir() 引用你的资源,运行方式完全相同。 但是有一点,用 Mix 的话,要删除 Laravel 模板中默认的这些引用行:

<link href="/css/app.css" rel="stylesheet">...<script src="/js/app.js"></script>

用下面这种方式替换它们:

<link href="{{ mix('/css/app.css') }}" rel="stylesheet">...<script src="{{ mix('/js/app.js') }}"></script>

记住,这个函数只是在 mix-manifest.json  中查找字符串并返回映射的构建文件。用来保证当你清除了缓存时,它懂得去加载默认的那个文件。

代码拆分

Webpack 是对许多人来说很令人兴奋的部分,因为它提供了使代码结构化的智能能力。我还没能完全弄明白 webpack 的所有功能,Mix 也没把所有功能都打包支持,例如:tree-shaking。但它确实使你的自定义代码(它可能会经常更改)与你的供应商代码(这不应该)区分,使得用户在每次推送新版本时刷新所有供应商代码的可能性更小。

要利用这个特性,你需要使用 extract() 函数,它将你定义一个给定的库或者模块集合提取到一个单独的构建文件名为 vendor.js

mix.js('resources/assets/js/app.js', 'public/js')    .extract(['vue', 'jquery']);

在这种情况下,Mix 生成了三个文件:public/js/app.jspublic/js/vendor.js  和第三个 Webpack 特定文件 public/js/manifest.js。 为了运行顺利,得按照以下的顺序引入这三个文件:

<script src="{{ mix('/js/manifest.js') }}"></script><script src="{{ mix('/js/vendor.js') }}"></script><script src="{{ mix('/js/app.js') }}"></script>

如果清除了缓存,并且更改了应用自定义的代码, vendor.js  文件仍会缓存,也只有应用自定义的代码才会被清除缓存,这样你的网站会加载得更快。

自定义 Webpack 配置

如果你有兴趣添加自己的自定义 Webpack 配置,只需要传递你的 Webpack 配置:

mix.webpackConfig({    resolve: {        modules: [            path.resolve(__dirname, 'vendor/laravel/spark/resources/assets/js')        ]    }});

(上面这个例子只是从文档复制粘贴来的~ 你真的有兴趣就自己去了解哈~)

顺便一提

说点有趣的东西吧,我想这或许能在 Webpack 文件中加点什么。 如果你想只在生产环境下复制点什么,你怎么会这样做?

会这么问是因为我发现在 Node 环境对象中,我们可以用 process.env 去访问。可以检查任何值,包括系统上的任何全局环境变量。这个发现可能可以让我们去做点其他有趣的事情,比如说有条件地检查 process.env.NODE_ENV  中的值:

if (process.env.NODE_ENV == 'production') {    mix.webpackConfig({ ... });}

但是在阅读源代码后,我发现 NODE_ENV 不是主要的检查。相反,是用了一个带有 inProduction  标志的配置对象去做这件事情。 这个文档里没有写,因此请谨慎使用,但你可以更新 Webpack 文件顶部的导入,然后使用该配置对象:

const { mix, config } = require('laravel-mix');if (config.inProduction) {    mix.webpackConfig({ ... });    }

默认依赖关系

你可以查看 package.json  并查看每个项目包含的依赖项列表。 记住,这些是由默认的 app.jsbootstrap.js  来引用的,你可以删除 app.js  和 package.json  中的引用,并重新运行 npm install ,当然删除引用并不会删除源文件。

  • Axios(一个简单且漂亮的 Http 客户端)

  • Bootstrap Sass(由默认的 app.scss  文件来引入 Bootstrap 样式)

  • jQuery

  • Lodash( 比 Underscore 更好)

  • Vue 2

到此,关于“laravel mix的作用是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: laravel mix的作用是什么

本文链接: https://lsjlt.com/news/348558.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • laravel mix的作用是什么
    这篇文章主要介绍“laravel mix的作用是什么”,在日常操作中,相信很多人在laravel mix的作用是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”laravel mix的作用是什么”的疑惑有所...
    99+
    2023-07-05
  • laravel中mix怎么用
    这篇文章主要为大家展示了“laravel中mix怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“laravel中mix怎么用”这篇文章吧。在laravel中,“laravel mix”是一款...
    99+
    2023-06-26
  • laravel路由的作用是什么
    今天小编给大家分享一下laravel路由的作用是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。在laravel中,路由的...
    99+
    2023-06-30
  • laravel门面的作用是什么
    这篇文章主要为大家展示了“laravel门面的作用是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“laravel门面的作用是什么”这篇文章吧。在laravel中,门面Facades用于为应用...
    99+
    2023-06-29
  • Laravel中App_KEY的作用是什么
    这篇文章主要介绍“Laravel中App_KEY的作用是什么”,在日常操作中,相信很多人在Laravel中App_KEY的作用是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Laravel中App_KEY...
    99+
    2023-07-04
  • php中laravel框架的作用是什么
    这期内容当中小编将会给大家带来有关php中laravel框架的作用是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。php有什么特点1、执行速度快。2、具有很好的开放性和可扩展性。3、PHP支持多种主流...
    99+
    2023-06-14
  • laravel队列并发消费的作用是什么
    Laravel队列并发消费的作用是提高任务处理的效率和速度。通过并发消费,可以同时处理多个队列任务,而不是顺序地一个一个处理。这样可...
    99+
    2023-09-06
    laravel
  • laravel中的dingo有什么作用
    这篇文章主要介绍“laravel中的dingo有什么作用”,在日常操作中,相信很多人在laravel中的dingo有什么作用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”laravel中的dingo有什么作用...
    99+
    2023-06-29
  • Laravel容器在PHP编程中的作用是什么?
    Laravel是一个流行的PHP框架,它提供了很多有用的功能,其中之一就是容器。容器是一个依赖注入的实现,它在Laravel应用程序中扮演着非常重要的角色。在本文中,我们将探讨Laravel容器在PHP编程中的作用,并演示如何在应用程序中使...
    99+
    2023-09-16
    load laravel 容器
  • 响应函数在 PHP Laravel 中的作用是什么?
    在开发 Web 应用程序时,最重要的部分之一是响应。响应是在 Web 应用程序中返回给客户端的内容。在 PHP Laravel 中,响应函数是用于生成响应的一种方式。响应函数是一种用于构建 HTTP 响应的功能强大的工具,可以帮助开发人员...
    99+
    2023-08-24
    laravel 响应 函数
  • PHP数组在Laravel框架中的作用是什么?
    Laravel是一个非常流行的PHP框架,它以简单易用、灵活性强、可扩展性好等优点受到了广泛的欢迎。PHP数组是Laravel框架中最重要的数据结构之一,它在Laravel框架中扮演着至关重要的角色,本文将从以下三个方面来阐述PHP数组在...
    99+
    2023-08-25
    数组 shell laravel
  • Laravel操作session和cookie的方法是什么
    本篇内容主要讲解“Laravel操作session和cookie的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Laravel操作session和cookie的方法是什么”吧!一:操作...
    99+
    2023-07-05
  • php laravel框架的工作流程是什么
    PHP Laravel框架的工作流程如下: 路由:请求到达服务器后,Laravel会根据路由配置文件(routes/web.ph...
    99+
    2023-10-22
    php laravel
  • laravel队列有什么作用
    这篇文章主要介绍了laravel队列有什么作用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇laravel队列有什么作用文章都会有所收获,下面我们一起来看看吧。在laravel中,队列可以用于允许在表的前端进行...
    99+
    2023-07-02
  • laravel的路由命名有什么作用
    这篇“laravel的路由命名有什么作用”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“laravel的路由命名有什么作用”文...
    99+
    2023-06-29
  • laravel中的make方法有什么作用
    本文小编为大家详细介绍“laravel中的make方法有什么作用”,内容详细,步骤清晰,细节处理妥当,希望这篇“laravel中的make方法有什么作用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。在larave...
    99+
    2023-06-29
  • 索引API在ASP和Laravel开发中的作用是什么?
    索引API是一种关键的技术,它在ASP和Laravel开发中扮演着非常重要的角色。它不仅可以提高应用程序的性能,还可以让应用程序更易于维护和扩展。本文将探讨索引API在ASP和Laravel开发中的作用,以及如何使用它来提高应用程序的性能...
    99+
    2023-09-21
    laravel 索引 api
  • laravel中wherehas有什么作用
    本篇内容主要讲解“laravel中wherehas有什么作用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“laravel中wherehas有什么作用”吧!在laravel中,...
    99+
    2023-07-01
  • laravel门面指的是什么
    这篇文章将为大家详细讲解有关laravel门面指的是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在laravel中,门面是为应用服务容器中的绑定类提供的一个“静态”接口。维护时能够提供更加易于测试、...
    99+
    2023-06-29
  • laravel中homestead指的是什么
    今天小编给大家分享一下laravel中homestead指的是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。larave...
    99+
    2023-06-29
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作