美文网首页
Laravel框架 之 Mix

Laravel框架 之 Mix

作者: 诺之林 | 来源:发表于2018-09-20 16:24 被阅读312次

本文的示例代码参考mix-basic

目录

Composer

composer create-project laravel/laravel mix-basic --prefer-dist "5.5.*"

cd mix-basic

Auth

docker run --name laravel-mix -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.17

docker exec -i laravel-mix mysql -uroot -p123456  <<< "CREATE DATABASE IF NOT EXISTS basic DEFAULT CHARSET utf8 COLLATE utf8_general_ci;"
sed -i "" 's/DB_DATABASE=homestead/DB_DATABASE=basic/g' .env

sed -i "" 's/DB_USERNAME=homestead/DB_USERNAME=root/g' .env

sed -i "" 's/DB_PASSWORD=secret/DB_PASSWORD=123456/g' .env
php artisan make:auth

php artisan migrate
  • 测试
php artisan serve

浏览器打开http://localhost:8000/register 注册账号如下

Name: test1

Email: test1@zeaho.com

Password: test1zeaho

Mix

cnpm i

Versioning

vim webpack.mix.js
let mix = require('laravel-mix');

mix.js('resources/assets/js/app.js', 'public/js')
    .sass('resources/assets/sass/app.scss', 'public/css')
    .version();
sed -i "" 's/asset/mix/g' resources/views/layouts/app.blade.php
cnpm run prod

Source Maps

vim webpack.mix.js
let mix = require('laravel-mix');

mix.js('resources/assets/js/app.js', 'public/js')
    .sourceMaps()
    .sass('resources/assets/sass/app.scss', 'public/css')
    .version();
cnpm run watch-poll

Vendor Extraction

vim webpack.mix.js
let mix = require('laravel-mix');

mix.js('resources/assets/js/app.js', 'public/js')
    .extract(['axios', 'bootstrap-sass', 'jquery', 'lodash', 'vue'])
    .sourceMaps()
    .sass('resources/assets/sass/app.scss', 'public/css')
    .version();

JS & CSS

vim resources/assets/js/register.js
console.log('register');
vim resources/assets/sass/register.scss
.panel-heading {
    color: red !important;
}
vim resources/views/layouts/app.blade.php
<!DOCTYPE html>
<html lang="{{ app()->getLocale() }}">
<head>
    <!-- Styles -->
    <link href="{{ mix('css/app.css') }}" rel="stylesheet">
    @yield('css')
</head>
<body>
    <!-- Scripts -->
    <script src="{{ mix('js/manifest.js') }}"></script>
    <script src="{{ mix('js/vendor.js') }}"></script>
    <script src="{{ mix('js/app.js') }}"></script>
    @yield('script')
</body>
</html>
vim resources/views/auth/register.blade.php
@section('css')
<link href="{{ mix('css/register.css') }}" rel="stylesheet">
@endsection

@section('script')
<script src="{{ mix('js/register.js') }}"></script>
@endsection

EasyUI

下载并导入 EasyUI

mkdir public/vendor

cp -R jquery-easyui-1.6.3 public/vendor/
find public/vendor/jquery-easyui-1.6.3 -type d
public/vendor/jquery-easyui-1.6.3
public/vendor/jquery-easyui-1.6.3/themes
public/vendor/jquery-easyui-1.6.3/themes/default
public/vendor/jquery-easyui-1.6.3/themes/default/images
public/vendor/jquery-easyui-1.6.3/themes/icons
vim resources/views/layouts/app.blade.php
<!DOCTYPE html>
<html lang="{{ app()->getLocale() }}">
<head>
    <!-- Styles -->
    <link href="vendor/jquery-easyui-1.6.3/themes/default/easyui.css" rel="stylesheet">
    <link href="vendor/jquery-easyui-1.6.3/themes/icon.css" rel="stylesheet">
    <link href="{{ mix('css/app.css') }}" rel="stylesheet">
    @yield('css')
</head>
<body>
    <!-- Scripts -->
    <script src="vendor/jquery-easyui-1.6.3/jquery.min.js"></script>
    <script src="vendor/jquery-easyui-1.6.3/jquery.easyui.min.js"></script>
    <script src="{{ mix('js/manifest.js') }}"></script>
    <script src="{{ mix('js/vendor.js') }}"></script>
    <script src="{{ mix('js/app.js') }}"></script>
    @yield('script')
</body>
</html>
vim resources/views/home.blade.php
@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row">
        <div class="col-md-8 col-md-offset-2">
            <div class="panel panel-default">
                <div class="panel-heading">Dashboard</div>

                <div class="panel-body">
                    @if (session('status'))
                        <div class="alert alert-success">
                            {{ session('status') }}
                        </div>
                    @endif

                    You are logged in!
                </div>
            </div>
        </div>
        <div class="easyui-tabs" style="width:700px;height:250px">
            <div title="About" style="padding:10px">
                <p style="font-size:14px">jQuery EasyUI framework helps you build your web pages easily.</p>
                <ul>
                    <li>easyui is a collection of user-interface plugin based on jQuery.</li>
                    <li>easyui provides essential functionality for building modem, interactive, javascript applications.</li>
                    <li>using easyui you don't need to write many javascript code, you usually defines user-interface by writing some HTML markup.</li>
                    <li>complete framework for HTML5 web page.</li>
                    <li>easyui save your time and scales while developing your products.</li>
                    <li>easyui is very easy but powerful.</li>
                </ul>
            </div>
            <div title="Help" data-options="iconCls:'icon-help',closable:true" style="padding:10px">
                This is the help content.
            </div>
        </div>
        <table class="easyui-datagrid" title="Basic DataGrid" style="width:700px;height:250px"
            data-options="singleSelect:true,collapsible:true,url:'datagrid_data1.json',method:'get'">
        <thead>
            <tr>
                <th data-options="field:'itemid',width:80">Item ID</th>
                <th data-options="field:'productid',width:100">Product</th>
                <th data-options="field:'listprice',width:80,align:'right'">List Price</th>
                <th data-options="field:'unitcost',width:80,align:'right'">Unit Cost</th>
                <th data-options="field:'attr1',width:250">Attribute</th>
                <th data-options="field:'status',width:60,align:'center'">Status</th>
            </tr>
        </thead>
    </table>
    </table>
    </div>
</div>
@endsection

关于EasyUI更多介绍 可以参考JQuery EasyUI中文网

参考

相关文章

网友评论

      本文标题:Laravel框架 之 Mix

      本文链接:https://www.haomeiwen.com/subject/cmjwnftx.html