美文网首页
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