You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel 9中用Vite安装Bootstrap 5遇问题求助

Bootstrap 5.2 + Vite 配置踩坑解决

问题背景

按官方指南集成Bootstrap 5.2与Vite后,出现文件找不到、样式不生效的问题,具体操作及错误如下:

已执行的操作

  • 安装Bootstrap:
    npm install bootstrap@5.2.2
    
  • 安装Sass开发依赖:
    npm i --save-dev sass
    
  • 配置vite.config.js别名:
    resolve: {
        alias: {
            '~bootstrap': path.resolve(__dirname, 'nodes_modules/bootstrap'),
        }
    }
    
  • 在/resources/app.js中引入资源:
    import '/resources/scss/styles.scss'    
    import * as bootstrap from 'bootstrap';
    
  • 创建/resources/scss/styles.scss并导入Bootstrap:
    // Import all of Bootstrap's CSS
    @import "~bootstrap/scss/bootstrap";
    

出现的错误

执行npm run dev或npm run build时抛出:

[plugin:vite:css] [sass] ENOENT: no such file or directory, open '/var/www/myapp/nodes_modules/bootstrap/scss/bootstrap

同时存在Bootstrap样式完全不生效的情况。


修复方案

1. 修正别名路径拼写错误

核心问题是vite.config.js里把node_modules写成了nodes_modules(多了一个s),这直接导致路径找不到。修正后的完整配置:

import { defineConfig } from 'vite'
import path from 'path'

export default defineConfig({
  resolve: {
    alias: {
      '~bootstrap': path.resolve(__dirname, 'node_modules/bootstrap'),
    },
  },
})

注意:要确保顶部引入了path模块,否则会报错path is not defined

2. 优化SCSS导入写法

Vite中更可靠的导入方式是直接使用包名,无需依赖别名,修改styles.scss:

// 推荐写法:直接通过包名导入
@import "bootstrap/scss/bootstrap";

如果坚持用别名,确保别名配置正确后再用@import "~bootstrap/scss/bootstrap";

3. 调整JS中的导入路径

避免使用绝对路径,改用相对路径更稳妥(假设app.js在resources目录下):

import './scss/styles.scss'
import * as bootstrap from 'bootstrap';

4. 重置依赖(可选)

如果之前的依赖安装有损坏,执行以下命令重新安装:

rm -rf node_modules package-lock.json
npm install

内容的提问来源于stack exchange,提问作者pileup

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 10:15:15