laravel vue tailwind normalize

news2024/11/24 14:47:33

下载laravel最新7.x

composer create-project --prefer-dist laravel/laravle blog 7.x-dev

 cd blog

valet link blog

valet links 

blog.test

测试通过后,开始安装tailwind

npm i

npm i tailwindcss autoprefixer postcss@7

都是最新版应该也没有什么问题

在根目录下添加

tailwind.js

module.exports = {
    content: [
        "./resources/**/*.blade.php",
        "./resources/**/*.js",
        "./resources/**/*.vue",
    ],
    darkMode: "class",
    theme: {
        extend: {},
    },
    plugins: [],
};

在webpack.mix.js 改为

mix.js("resources/js/app.js", "public/js")
    .sass("resources/sass/app.scss", "public/css")
    .options({
        processCssUrls: false,
        postCss: [tailwindcss("./tailwind.js")],
    });

在res / sass /app.scss 中添加,vscode 的报错不用管,只要打包成就没什么问题,如果你是强迫症直接网上查找 或者  用phpstorm 

@tailwind base;
@tailwind components;
@tailwind utilities;

在welcome.blade.php中添加,测试代码<span class="bg-red-900">dfdf</span>

<link rel="stylesheet" href="{{ asset('css/app.css') }}">
        @stack('stylesheets')

在终端输入命令

npm run prod

这个时候刷新页面,是有出现文字背景是红色的,加载成功,

这个时候你会发现浏览器的css都是报红,不要慌,

在package.json 中添加

"browserslist": [
        "> 1%",
        "last 2 versions"
    ]

再运行 npm run prod

问题解决,接着在测试添加vue后会出现的问题

添加vue 

 composer require laravel/ui:^2.4

php artisan ui vue

npm install  初始化

打包要重新写

const mix = require("laravel-mix");

const fs = require("fs");
const Path = require("path");
const { argv } = require("process");

const tailwindcss = require("tailwindcss");

/*
 |--------------------------------------------------------------------------
 | Mix Asset Management
 |--------------------------------------------------------------------------
 |
 | Mix provides a clean, fluent API for defining some Webpack build steps
 | for your Laravel application. By default, we are compiling the Sass
 | file for the application as well as bundling up all the JS files.
 |
 */

// 模块参数名称
const MODULE_ARG_NAME = "pages";

const FILE_TYPE = {
    SASS: "sass",
    JS: "js",
};

const SASS_PATH_PREFIX = "resources/sass/views";
const JS_PATH_PREFIX = "resources/js/views";

const CSS_DEST_PATH = "public/css";
const JS_DEST_PATH = "public/js";

function resolve(dir) {
    return Path.resolve(process.cwd(), dir);
}

const getCompilerModules = () => {
    let modules = [];
    const lastArg = argv[argv.length - 1];

    if (lastArg.indexOf(MODULE_ARG_NAME) > -1) {
        const modulesStr = lastArg.split("=")[1];
        modules = modulesStr.split(",");
    }
    return modules;
};

const complierFile = (
    fileType = FILE_TYPE.SASS,
    pathPerfix = SASS_PATH_PREFIX,
    destPath = CSS_DEST_PATH
) => {
    if (!mix[fileType] || !mix[fileType] instanceof Function) {
        throw new Error("文件类型非法!");
    }

    const _fn = mix[fileType];

    const _findNeedComfilerFile = (dirPath, subDirPath) => {
        const files = fs.readdirSync(dirPath);
        files.forEach((item) => {
            const fPath = Path.join(dirPath, item);
            const stat = fs.statSync(fPath);
            if (stat.isDirectory()) {
                _findNeedComfilerFile(fPath, item);
            }
            if (stat.isFile()) {
                let _targetDestPath = destPath;
                if (subDirPath) {
                    _targetDestPath = `${_targetDestPath}/${subDirPath}`;
                }
                _fn(fPath, _targetDestPath);
            }
        });
    };

    try {
        _findNeedComfilerFile(pathPerfix);
    } catch (e) {
        // throw new Error(e);
        console.error(e);
    }
};

const gloableCompier = () => {
    // 编译SASS
    complierFile(FILE_TYPE.CSS, SASS_PATH_PREFIX, `${CSS_DEST_PATH}/views`);

    // 编译JS
    complierFile(FILE_TYPE.JS, JS_PATH_PREFIX, `${JS_DEST_PATH}/views`);
};

const init = () => {
    mix.webpackConfig({
        resolve: {
            alias: {
                "@": resolve("resources"),
                "@views": resolve("resources/views"),
                "@js": resolve("resources/js"),
                "@sass": resolve("resources/sass"),
                $public: resolve("public"),
            },
        },
    });
    // mix.js("resources/js/app.js", "public/js").sass(
    //     "resources/sass/app.scss",
    //     "public/css"
    // );

    mix.js("resources/js/app.js", "public/js")
        .sass("resources/sass/app.scss", "public/css")
        .options({
            processCssUrls: false,
            postCss: [tailwindcss("./tailwind.js")],
        });

    const compilerModules = getCompilerModules();
    console.log(compilerModules);
    if (compilerModules.length) {
        // 按需编译
        for (const module of compilerModules) {
            const sassPath = `${SASS_PATH_PREFIX}/${module}`;
            const jsPath = `${JS_PATH_PREFIX}/${module}`;
            // 编译SASS
            complierFile(
                FILE_TYPE.CSS,
                sassPath,
                `${CSS_DEST_PATH}/views/${module}`
            );

            // 编译JS
            complierFile(
                FILE_TYPE.JS,
                jsPath,
                `${JS_DEST_PATH}/views/${module}`
            );
        }
    } else {
        // 全局编译
        gloableCompier();
    }

    if (mix.inProduction()) {
        mix.version();
    }

    mix.sourceMaps(false, "eval-source-map");
};

init();

完成后显示没有问题,但是

浏览器css 全部都报红,

解决方案:

1.直接将public /css / app.css 中修改 -webkit-text-size-adjust: none;  

2.在res / sass / app.scss 中修导入 

// @tailwind base;
// @tailwind components;
@tailwind utilities;

// 如果你不需要它的初始,可以只有它的实例,那么,就没有  红色波浪线,

关于laravel 的模版语言,直接套用就好

layouts / app.blade.php

<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">

        <title>
            @yield('page-title')
        </title>

        <link rel="stylesheet" href="{{ asset('css/app.css') }}">
        @stack('stylesheets')
        
    

    </head>
    <body>
    @yield('content')
    <script src="{{ asset('js/app.js')}}"></script>
    @stack('scripts')
    </body>
</html>

接下来就直接继承就好 了

@extends('layouts.app')

@section('page-title', 'home index')

@section('content')
    <div id='home-wrapper'>
        <span>wo</span>
        <span>@{{test}}</span>
        <span class=' text-blue-900'>this is good</span>
        <span class=' bg-red-600'>thi is bt</span>
        <span class=' text-blue-900'>this is xiaoming</span>
    </div>
@endsection

@push('scripts')
    <script src="{{ asset('js/views/home/index.js') }}"></script>
@endpush

@push('stylesheets')
    <link rel="stylesheet" href="{{ asset('css/views/home/index.css') }}"> 
@endpush

 接下来就愉快的撸代码吧,如果出现其他问题可留言讨论

 这个时候看需要,导入一个组件库,我选择 antd

npm i ant-design-vue@1.7.8

复制 antd.min.js   antd.min.css 

这个时候就 normalize 和 reset  的效果都有了,用 e-ui  也是一样的,

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/53487.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CSS自定义属性与前端页面的主题切换

基于级联变量的CSS自定义属性&#xff0c;已经出来很多年了。 虽然有less、sass等预处理器大行其道&#xff0c;但是自定义属性也有它的特点和用处&#xff0c;诸如在js中读写、作用域设置等等&#xff0c;在处理UI主题切换等功能上也发挥着很大的作用。 自定义属性 CSS自定义…

电影《乌云背后的幸福线》观后感

首先感谢同学推荐这部电影&#xff0c;以前没看过这部电影《乌云背后的幸福线》&#xff0c;看完之后一点想法&#xff0c;希望你能给点启发吧&#xff0c;整部电影讲述一对分别离异的男女再次相爱的故事。打个比方&#xff0c;就好像因为感情不和的小王夫妇离婚了&#xff0c;…

【Spring源码系列】Spring扫描-@ComponentScan底层原理解读

这里写目录标题前言一、ComponentScan注解介绍ComponentScan作用ComponentScan重要参数二、ComponentScan源码分析声明关键点源码解读Spring扫描流程图前言 先不废话了&#xff0c;直接干吧。 一、ComponentScan注解介绍 ComponentScan作用 ComponentScan注解的作用可以简述…

一文搞懂PKI/CA

PKI1. 信息安全1. 1 主要攻击形式1.2 信息安全的目标2. PKI2.1 基本概念2.2 PKI的组成3. 数字证书3.1 基本概念3.2 证书的生成与验证3.3 证书链3.4 证书管理4. 时间戳服务1. 信息安全 随着数字经济、互联网金融、人工智能、大数据、云计算等新技术新应用快速发展&#xff0c;催…

GIS工具maptalks开发手册(二)02——渲染线

GIS工具maptalks开发手册(二)02——渲染线 效果 1、html版本 LineString.html <!DOCTYPE html> <html> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1"> <title>图形…

Redis 的 Java 客户端(Jedis、SpringDataRedis、SpringCache、Redisson)基本操作指南

Jedis 参考&#xff1a; Jedic 官方文档Jedis 托管在 github 上的源码 Redis 不仅是使用命令来操作&#xff0c;现在基本上主流的语言都有客户端支持&#xff0c;比如 java、C、C#、C、php、Node.js、Go 等。在官方网站里列一些 Java 的客户端&#xff0c;有 Jedis、Redisso…

CentOS 7 不显示ip

使用ip add或ifconfig插件看网络信息 进入文件夹/etc/sysconfig/network-scripts 修改对应的ens33网卡的配置文件&#xff0c;默认请工况下CentOS 7不启动网卡&#xff08;ONBOOTno&#xff09; 修改vim ifcfg-ens33中的ONBOOTno为ONBOOTyes 重启服务&#xff1a;service netwo…

【蓝桥杯省赛真题14】python围圈报数 青少年组蓝桥杯python编程省赛真题解析

目录 python围圈报数 一、题目要求 1、编程实现 2、输入输出 3、评分标准

2023年,想要靠做软件测试获得高薪,还有机会吗?

时间过得很快&#xff0c;一眨眼&#xff0c;马上就要进入2023年了&#xff0c;到了年底&#xff0c;最近后台不免又出现了经常被同学问道这几个问题&#xff1a;2023年还能转行软件测试吗&#xff1f;零基础转行可行吗&#xff1f; 本期小编就“2023年&#xff0c;入行软件测…

centernet的数据增强操作--仿射变换

centernet论文与代码剖析_无左无右的博客-CSDN博客_centernet原论文blogfirst_rank_ecpm_v1~rank_v31_ecpm-3-110164808-null-null.nonecase&utm_termcenternet&spm1018.2226.3001.4450 其实在这里也分析过。奈何当初写的代码不知道哪里去了&#xff1b; 本文原地址&am…

Java学习之方法重写/覆盖

目录 一、方法重写的概念 二、入门案例 三、使用细节 第一条 第二条 第三条 一、方法重写的概念 方法覆盖(重写)就是子类有一个方法,和父类的某个方法的名称、返回类型、参数一样,那么我们就说子类的这个方法覆盖了父类的方法 注释&#xff1a;包括直接继承和简介继承&…

连接阿里云MaxCompute数据源报错504 Gateway Time-out

背景 经济下行的大环境下&#xff0c;很多公司都在做出海业务&#xff0c;即把海外人民做为服务对象。我司亦不例外。最近在全职负责的一款数据产品&#xff0c;也需要在菲律宾&#xff08;马尼拉&#xff09;也部署一个站点。 站点部署成功&#xff0c;看起来一切顺利。既然…

k8s网络插件之Calico

Calico简介 Calico官方文档&#xff1a;https://projectcalico.docs.tigera.io/getting-started/kubernetes/quickstart Calico是一套开源的网络和网络安全解决方案&#xff0c;用于容器、虚拟机、宿主机之前的网络连接&#xff0c;它是一个纯三层的虚拟化网络解决方案&#…

Springboot毕业设计毕设作品,心理评测系统设计与实现

功能清单 【后台功能】 系统设置&#xff1a;设置关于我们、联系我们、加入我们、法律声明 广告管理&#xff1a;设置小程序首页轮播图广告和链接 留言列表&#xff1a;所有用户留言信息列表&#xff0c;支持删除 会员列表&#xff1a;查看所有注册会员信息&#xff0c;支持删…

QT笔记——vs中的qt项目 可调试源码

环境&#xff1a;vs2019 qt 5.12.2 1&#xff1a;首先我们需要选择我们的源码路径 右键解决方案-》属性-》通用属性-》调试源文件-》在窗口内添加QT下载时的源码**.src文件夹** 2.下载对应QT版本的PDB文件 http://download.qt.io/online/qtsdkrepository/windows_x86/desktop/…

PG第十一章-基准测试与 pgbench

性能基准线称为基准测试 一&#xff1a;关于基准测试 影响的关键因素有&#xff1a; 硬件&#xff0c;如服务器配置、 CPU 内存、存储&#xff0c;通常硬件越高级&#xff0c;系统的性能越好&#xff1b;网络&#xff0c;带宽不足也会严重限制系统整体性能表现&#xff1b;负…

双十二购买护眼台灯亮度多少合适?灯光亮度多少对眼睛比较好呢

现在越来越多的孩子近视情况严重&#xff0c;走在大街上&#xff0c;普遍都能见到大多数孩子都戴着眼镜&#xff0c;这不仅与我们的生活习惯、饮食健康有关&#xff0c;也受照明环境的影响&#xff0c;所以很多家长为了孩子的视力健康&#xff0c;开始使用护眼台灯来照明了。 …

短信服务调研

调研新技术方案的一般步骤&#xff1a; 列出所有竞品&#xff0c;根据品牌、功能、价格&#xff0c;选择最合适的一个购买或试用服务查阅相关文档和配置要单独写一个demo&#xff0c;体验一下 竞品有&#xff1a;七牛云、阿里云、网易云、腾讯云 本次选择为腾讯云&#xff1a…

springboot简述

文章目录一、SpringBoot简介1、springboot快速入门1、开发步骤1.创建springboot入门项目2.创建controller3.启动服务器4.测试2、对比spring3、springboot工程快速启动4.切换web服务器二、配置文件1.配置文件格式2.properties配置文件3.yaml格式配置文件1.语法规则2.yaml配置文件…

【C++天梯计划】1.10 二叉树(binary tree)

文章目录什么是二叉树&#xff1f;二叉树的定义二叉树的基本形态二叉树的性质例题1&#xff1a;二叉树的遍历题目描述输入输出样例代码例题2&#xff1a;哈夫曼树题目描述输入输出样例代码&#x1f386;&#x1f389;&#x1f389;&#x1f389;&#x1f389;&#x1f389;&…