下面由laravel教程栏目给大家介绍laravel怎么自定义webpack.mix.js,希望对需要的朋友有所帮助!
Laravel自定义webpack.mix.js
我们在使用laravel构建项目时,经常会把后台管理及前台放在同一个laravel项目中。
但是当这两个项目都需要用到laravel-mix构建时,我们希望通过运行不同的npm命令区分后台及前台。
考虑混合在一起的情况:
//webpack.mix.jsconst { mix } = require('laravel-mix'); //前台资源打包到 /public/js/index.jsmix.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,资源文件就能自动打包了。
但是当只你想更新前台资源文件时,后台资源文件不得不一起被动更新。
解决方案
在根目录定义两个配置文件
webpack.mix.js //默认已存在webpack.admin.js
更新webpack.mix.js使其支持env。
企业软件介绍主页html模板
一款多用途的企业软件前端HTML模板。IT软件服务公司网站响应式单页模板。基于CSS、JS、HTML模块化原则创建的。如果您的站点不需要所有元素,那么可以轻松地删除不必要的组件。模板的代码干净,友好,注释良好。这使得编辑和自定义模板变得很容易。
350 查看详情
//webpack.mix.jsconst { 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.jsconst { 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.js及webpack.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.jsmix.setPublicPath('public-admin');//...
测试时laravel-mix:^0.11.4, laravel:5.4.*,若你有更好的解决方案。那你还在….【推荐:最新的五个Laravel视频教程】
以上就是Laravel怎么自定义webpack.mix.js的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/730504.html
微信扫一扫
支付宝扫一扫