Laravel怎么自定义webpack.mix.js

发布时间 - 2021-04-01 00:00:00    点击率:

下面由laravel教程栏目给大家介绍laravel怎么自定义webpack.mix.js,希望对需要的朋友有所帮助!

Laravel自定义webpack.mix.js

我们在使用laravel构建项目时,经常会把后台管理前台放在同一个laravel项目中。

但是当这两个项目都需要用到laravel-mix构建时,我们希望通过运行不同的npm命令区分后台及前台。

考虑混合在一起的情况:

//webpack.mix.js

const { mix } = require('laravel-mix');

    //前台资源打包到 /public/js/index.js
mix.js('resources/assets/js/app.js', 'js/index.js')
    //后台资源打包到 /public/js/admin/index.js
   .js('resources/assets/js/admin/index.js', 'js/admin/');

webpack.mix.js中,我们把后台和前台资源文件写在同一个配置文件中,这样你只需运行npm run dev,资源文件就能自动打包了。

但是当只你想更新前台资源文件时,后台资源文件不得不一起被动更新。

解决方案

在根目录定义两个配置文件

  1. webpack.mix.js //默认已存在
  2. webpack.admin.js

更新webpack.mix.js使其支持env

//webpack.mix.js
const { mix } = require('laravel-mix');
const { env } = require('minimist')(process.argv.slice(2));

if (env && env.admin) {
    require(`${__dirname}\\webpack.admin.js`);
    return;
}

mix.js('resources/assets/js/app.js', 'js/index.js');
//其他前端资源

后端资源打包webpack.admin.js配置

//webpack.admin.js
const { mix } = require('laravel-mix');

mix.js('resources/assets/js/admin/index.js', 'js/admin/');
//其他后台资源配置

确认已安装完node依赖,并在根目录执行

npm run dev -- --env.admin //打包后端资源
npm run dev                //默认打包前端资源

若嫌每次都带参数太麻烦,可更新package.json文件,带上env参数(最后面)

"scripts": {
    "dev-admin": "node node_modules/cross-env/dist/bin/cross-env.js NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js --env.admin"
}

接下来直接运行npm run dev-admin就能打包后端资源。

注意,

webpack.mix.jswebpack.admin.js没有指定不同的mix.setPublicPath(path)时,默认的打包文件都会放到/public目录下,这样每次打包都会覆盖mix-manifest.json的值。

最好的方法时前台及后台指定不同的目录,

server {
    server_name admin.domain.com;
    index index.php;
    root /data/your/site/public-admin;
    # ....
}

server {
    server_name domain.com;
    root /data/your/site/public;
    index index.php;
    # ....
}

这样你只需要在webpack.admin.js指定publicPath就能避免mix-manifest.json被覆盖的问题。

//webpack.admin.js
mix.setPublicPath('public-admin');
//...
测试时laravel-mix:^0.11.4, laravel:5.4.*,若你有更好的解决方案。那你还在....【推荐:最新的五个Laravel视频教程】


# laravel  # json  # npm  # webpack  # public  # JS  # 就能  # 后端  # 自定义  # 配置文件  # 放在  # 还在  # 最好的  # 只需  # 你想  # 并在 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 详解Huffman编码算法之Java实现  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  js代码实现下拉菜单【推荐】  如何用5美元大硬盘VPS安全高效搭建个人网站?  企业网站制作这些问题要关注  Windows家庭版如何开启组策略(gpedit.msc)?(安装方法)  Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】  Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案  如何为不同团队 ID 动态生成多个非值班状态按钮  Laravel如何创建自定义中间件?(Middleware代码示例)  java获取注册ip实例  CSS3怎么给轮播图加过渡动画_transition加transform实现【技巧】  魔毅自助建站系统:模板定制与SEO优化一键生成指南  Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践  Laravel如何使用Service Provider服务提供者_Laravel依赖注入与容器绑定【深度】  微信推文制作网站有哪些,怎么做微信推文,急?  Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解  昵图网官网入口 昵图网素材平台官方入口  南京网站制作费用,南京远驱官方网站?  米侠浏览器网页背景异常怎么办 米侠显示修复  详解Android图表 MPAndroidChart折线图  Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】  创业网站制作流程,创业网站可靠吗?  Linux系统命令中screen命令详解  使用Dockerfile构建java web环境  iOS发送验证码倒计时应用  瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口  如何正确下载安装西数主机建站助手?  js实现点击每个li节点,都弹出其文本值及修改  Laravel如何实现全文搜索_Laravel Scout集成Algolia或Meilisearch教程  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决  Laravel怎么导出Excel文件_Laravel Excel插件使用教程  HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】  Python自动化办公教程_ExcelWordPDF批量处理案例  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法  Laravel如何创建自定义Artisan命令?(代码示例)  如何基于云服务器快速搭建网站及云盘系统?  图册素材网站设计制作软件,图册的导出方式有几种?  成都网站制作公司哪家好,四川省职工服务网是做什么用?  Win11怎样安装网易有道词典_Win11安装词典教程【步骤】  高防服务器如何保障网站安全无虞?  如何破解联通资金短缺导致的基站建设难题?  Laravel表单请求验证类怎么用_Laravel Form Request分离验证逻辑教程  如何快速建站并高效导出源代码?  Win11怎么开启自动HDR画质_Windows11显示设置HDR选项  如何快速启动建站代理加盟业务?  jquery插件bootstrapValidator表单验证详解  Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理