nanicas/legacy-laravel-toolkit-view-library

laravel 所有常见视图逻辑的抽象

dev-main 2024-05-06 17:46 UTC

This package is not auto-updated.

Last update: 2024-09-23 19:30:58 UTC


README

注意:以下所有命令应在您的项目主目录下执行。

安装依赖

composer require nanicas/legacy-laravel-toolkit-view-library:dev-main

导入SASS

如果不存在,请在 /resources 下创建名为 sass 的文件夹,并添加一个名为 app.scss 的文件,内容如下

@import '../vendor/legacy_laravel_toolkit_view_library/sass/bootstrap';

导入JS

/resources 文件夹内,导航到您的 js 文件夹,并编辑 app.js 文件

import '../vendor/legacy_laravel_toolkit_view_library/js/bootstrap';

provider 配置为触发器

编辑文件 <app_name>/config/app.php 并添加以下行

'providers' => [
    \Nanicas\LegacyLaravelToolkitView\Providers\BootstrapServiceProvider::class,
]

执行配置文件发布的命令

php artisan vendor:publish --tag="legacy_laravel_toolkit_view_library:resources"
php artisan vendor:publish --tag="legacy_laravel_toolkit_view_library:views"
php artisan vendor:publish --tag="legacy_laravel_toolkit_view_library:public"

安装补充库

npm install vite-plugin-static-copy@^0.17.0

安装第三方库

如果我们查看文件 https://github.com/nanicas/legacy-laravel-toolkit-view-library/blob/main/resources/js/bootstrap.js,我们会看到多个库需要存在,以便后续的 build 阶段能够正常工作。为此,我们需要执行以下命令

npm install \
  jquery \
  jquery-mask-plugin \
  ladda \
  chart.js \
  @kurkle/color \
  select2 \
  jspdf \
  datatables.net-bs5 \
  datatables.net-plugins

配置vite以复制全局资源

import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';
import { viteStaticCopy } from 'vite-plugin-static-copy'

export default defineConfig({
    plugins: [
        laravel({
            input: [
                'resources/sass/app.scss',
                'resources/js/app.js',
            ],
            refresh: true,
        }),
        viteStaticCopy({
            targets: [
                {
                    src: 'resources/vendor/legacy_laravel_toolkit_view_library/vendor/chartjs/utils.js',
                    dest: 'vendor/chartjs'
                },
                {
                    src: 'resources/vendor/legacy_laravel_toolkit_view_library/vendor/select2/i18n/pt-BR.js',
                    dest: 'vendor/select2/i18n'
                },
                {
                    src: 'resources/vendor/legacy_laravel_toolkit_view_library/vendor/select2/custom.css',
                    dest: 'vendor/select2'
                },
                {
                    src: 'resources/vendor/legacy_laravel_toolkit_view_library/vendor/bootstrap-theme/feather.min.js',
                    dest: 'vendor/bootstrap-theme'
                },
            ]
        })
    ],
});