vite环境下使用bootstrap

环境

nodejs 18
pnpm

初始化

bash 复制代码
pnpm init
pnpm add -D vite --registry http://registry.npm.taobao.org
pnpm add bootstrap @popperjs/core --registry http://registry.npm.taobao.org
pnpm add -D sass --registry http://registry.npm.taobao.org

新建vite.config.js

js 复制代码
const path = require('path')

export default {
    root: path.resolve(__dirname, 'src'),
    server: {
        port: 8080,
        hot: true
    }
}

src下新建index.html

html 复制代码
<!doctype html>
<html lang="zh">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Bootstrap Vite</title>
</head>
<body>
<div class="container py-4 px-3 mx-auto">
    <h1>Hello, Bootstrap and Vite!</h1>
    <button class="btn btn-primary">Primary button</button>
</div>
<script type="module" src="./js/main.js"></script>
</body>
</html>

修改package.json

json 复制代码
  "scripts": {
    "start": "vite"
  },

运行

bash 复制代码
pnpm start

引入bootstrap

修改vite.config.js

js 复制代码
const path = require('path')

export default {
    root: path.resolve(__dirname, 'src'),
    resolve: {
        alias: {
            '~bootstrap': path.resolve(__dirname, 'node_modules/bootstrap'),
        }
    },
    server: {
        port: 8080,
        hot: true
    }
}

新建 src/scss/styles.scss

css 复制代码
@import "~bootstrap/scss/bootstrap";

新建src/js/main.js

js 复制代码
// Import our custom CSS
import '../scss/styles.scss'

// Import all of Bootstrap's JS
import * as bootstrap from 'bootstrap'
//单个引入
//import {Button} from 'bootstrap'

打包

修改package.json

json 复制代码
  "scripts": {
    "start": "vite",
    "build": "vite build"
  },

执行pnpm build

dist相对于index.html,默认会在src目录下和index.html同级

如果想打包到src目录外可以设置相对路径

js 复制代码
const path = require('path')

export default {
    root: path.resolve(__dirname, 'src'),
    resolve: {
        alias: {
            '~bootstrap': path.resolve(__dirname, 'node_modules/bootstrap'),
        }
    },
    server: {
        port: 8080,
        hot: true
    },
    build:{
        outDir:'../dist'
    }
}
相关推荐
AlgorithmAce2 小时前
Live2D嵌入前端页面
前端
nameofworld2 小时前
前端面试笔试(六)
前端·javascript·面试·学习方法·递归回溯
前端fighter3 小时前
js基本数据新增的Symbol到底是啥呢?
前端·javascript·面试
GISer_Jing3 小时前
从0开始分享一个React项目:React-ant-admin
前端·react.js·前端框架
川石教育3 小时前
Vue前端开发子组件向父组件传参
前端·vue.js·前端开发·vue前端开发·vue组件传参
GISer_Jing4 小时前
Vue前端进阶面试题目(二)
前端·vue.js·面试
乐闻x4 小时前
Pinia 实战教程:构建高效的 Vue 3 状态管理系统
前端·javascript·vue.js
weixin_431449684 小时前
web组态软件
前端·物联网·低代码·编辑器·组态
橘子味小白菜4 小时前
el-table的树形结构后端返回的id没有唯一键怎么办
前端·vue.js
前端Hardy5 小时前
HTML&CSS:比赛记分卡
前端·javascript·css·3d·html