vue引入bootstrap——webpack
想要在vue中引入bootstrap,引入的时候需要按照如下的步骤进行。
1、引入jquery
2、引入bootstrap
阅读本文前,应该能够搭建环境,使用vue-cli进行项目的创建,可以参考文章:
http://blog.csdn.net/wild46cat/article/details/76360229
好,下面上货。
1、首先按照上面文章中的内容,新建一个vue工程。
2、使用命令npm install jquery --save-dev 引入jquery。
3、在webpack.base.conf.js中添加如下内容:
var webpack = require('webpack')
和
// 增加一个plugins plugins: [ new webpack.ProvidePlugin({ $: "jquery", jQuery: "jquery" }) ],
添加完成后,文件内容如下:
-
var path = require('path')
-
var fs = require('fs')
-
var utils = require('./utils')
-
var config = require('../config')
-
var vueLoaderConfig = require('./vue-loader.conf')
-
function resolve(dir) {
-
return fs.realpathSync(__dirname + '/' + path.join('..', dir))
-
}
-
module.exports = {
-
entry: {
-
app: './src/main.js'
-
},
-
output: {
-
path: config.build.assetsRoot,
-
filename: '[name].js',
-
publicPath: process.env.NODE_ENV === 'production'
-
? config.build.assetsPublicPath
-
: config.dev.assetsPublicPath
-
},
-
resolve: {
-
extensions: ['.js', '.vue', '.json'],
-
alias: {
-
'vue$': 'vue/dist/vue.esm.js',
-
'@': resolve('src'),
-
},
-
symlinks: false
-
},
-
module: {
-
rules: [
-
{
-
test: /\.vue$/,
-
loader: 'vue-loader',
-
options: vueLoaderConfig
-
},
-
{
-
test: /\.js$/,
-
loader: 'babel-loader',
-
include: [resolve('src'), resolve('test')]
-
},
-
{
-
test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
-
loader: 'url-loader',
-
options: {
-
limit: 10000,
-
name: utils.assetsPath('img/[name].[hash:7].[ext]')
-
}
-
},
-
{
-
test: /\.(mp4|webm|ogg|mp3|wav|flac|aac)(\?.*)?$/,
-
loader: 'url-loader',
-
options: {
-
limit: 10000,
-
name: utils.assetsPath('media/[name].[hash:7].[ext]')
-
}
-
},
-
{
-
test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
-
loader: 'url-loader',
-
options: {
-
limit: 10000,
-
name: utils.assetsPath('fonts/[name].[hash:7].[ext]')
-
}
-
}
-
]
-
},
-
// 增加一个plugins
-
plugins: [
-
new webpack.ProvidePlugin({
-
$: "jquery",
-
jQuery: "jquery"
-
})
-
],
-
}
4、在main.js中添加内容
import $ from 'jquery'
添加完成后,可以在home.vue中尝试jquery是否好用。
5、修改home.vue的内容,一个是尝试添加bootstrap的代码,还有事验证jquery的代码
-
<template>
-
<div class="hello">
-
<h1>{{ msg }}</h1>
-
<h2>Essential Links</h2>
-
<ul>
-
<li><a href="https://vuejs.org" target="_blank">Core Docs</a></li>
-
<li><a href="https://forum.vuejs.org" target="_blank">Forum</a></li>
-
<li><a href="https://chat.vuejs.org" target="_blank">Community Chat</a></li>
-
<li><a href="https://twitter.com/vuejs" target="_blank">Twitter</a></li>
-
<br>
-
<li><a href="http://vuejs-templates.github.io/webpack/" target="_blank">Docs for This Template</a></li>
-
</ul>
-
<h2>Ecosystem</h2>
-
<ul>
-
<li><a href="http://router.vuejs.org/" target="_blank">vue-router</a></li>
-
<li><a href="http://vuex.vuejs.org/" target="_blank">vuex</a></li>
-
<li><a href="http://vue-loader.vuejs.org/" target="_blank">vue-loader</a></li>
-
<li><a href="https://github.com/vuejs/awesome-vue" target="_blank">awesome-vue</a></li>
-
</ul>
-
<div class="btn-group" role="group" aria-label="...">
-
<button type="button" class="btn btn-default">Left</button>
-
<button type="button" class="btn btn-default">Middle</button>
-
<button type="button" class="btn btn-default">Right</button>
-
</div>
-
<div id="cc">cc</div>
-
</div>
-
</template>
-
<script>
-
$(function () {
-
alert(123);
-
});
-
export default {
-
name: 'hello',
-
data () {
-
return {
-
msg: 'Welcome to Your Vue.js App'
-
}
-
}
-
}
-
</script>
-
<!-- Add "scoped" attribute to limit CSS to this component only -->
-
<style scoped>
-
h1, h2 {
-
font-weight: normal;
-
}
-
ul {
-
list-style-type: none;
-
padding: 0;
-
}
-
li {
-
display: inline-block;
-
margin: 0 10px;
-
}
-
a {
-
color: #42b983;
-
}
-
</style>
5、这样,使用npm run dev后,能够在界面上看到,弹出alert,就证明jquery引入成功了。
6、安装bootstrap,使用命令npm install bootstrap --save-dev
7、安装成功后,能够在package.json文件夹中看到bootstrap这个模块。这时候需要在main.js中添加如下内容:
import 'bootstrap/dist/css/bootstrap.min.css' import 'bootstrap/dist/js/bootstrap.min'
添加完成后,重新启动程序,npm run dev。就能看到界面中的按钮已经是bootstrap的按钮组了。
最后,附上整个main.js文件的内容:
-
// The Vue build version to load with the `import` command
-
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
-
import Vue from 'vue'
-
import App from './App'
-
import router from './router'
-
import $ from 'jquery'
-
import 'bootstrap/dist/css/bootstrap.min.css'
-
import 'bootstrap/dist/js/bootstrap.min'
-
Vue.config.productionTip = false
-
/* eslint-disable no-new */
-
new Vue({
-
el: '#app',
-
router,
-
template: '<App/>',
-
components: {App}
-
})