搭建Vue2+Vuex+Webpack+Pug(jade)+Stylus环境
一、开发环境配置
开始之前,假设你已经安装了最新版本的 node 和 npm。
全局安装 vue-cli 和 webpack :
npm install vue-cli webpack -g
创建工程;工程名字不能用中文,英文也建议小写。
vue init webpack 项目名
按照步骤一步一步执行,需要你添加 Project name,Project description,Author.

然后使用 npm install 安装官方库。
然后使用npm run dev运行我们的项目后浏览器会自动弹出,并展示以下页面。

可以根据页面给我们的这八个链接获得我们想要的学习资源。
接下来安装Vue全家桶。
npm install vue-router vue-resource vuex --save
如下修改src/main.js :
import Vue from 'vue'
import VueResource from 'vue-resource'
import VueRouter from 'vue-router'
import Vuex from 'vuex' import App from './App.vue' Vue.use(VueResource)
Vue.use(VueRouter)
Vue.use(Vuex) new Vue({
el: '#app',
render: h => h(App)
})
安装html模板语言pug(jade)
npm install pug pug-loader pug-filters --save
安装css 预编译语言stylus
npm install style-loader stylus stylus-loader --save
# 或者你习惯用sass或less
# npm install style-loader node-sass sass-loader --save
# npm install style-loader less less-loader --save
打开webpack.config.js,配置loader:
module: {
rules: [
{
test: /\.vue$/,
loader: 'vue-loader',
options: {
loaders: {
}
// other vue-loader options go here
}
},
{
test: /\.pug$/,
loader: 'vue-html!pug-html'
},
{
test: /\.styl/,
loader: "style-loader!css-loader!stylus-loader"
},
...
生成html文件,安装插件` html-webpack-plugin `。
npm install html-webpack-plugin --save
var path = require('path')
var webpack = require('webpack')
var HtmlWebpackPlugin = require('html-webpack-plugin')
module.exports = {
entry: './src/main.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'js/build.js',
},
...
plugins: [
new HtmlWebpackPlugin({
title: 'Charles 的个人主页',
filename: 'index.html', //生成后的文件名,默认为 index.html.
template: 'index.html', //自定义的模板文件
inject:'body' //script标签位于html文件的 body 底部
}),
]
}
提取CSS,提取CSS的插件叫`extract-text-webpack-plugin`,这个不是webpack自带的,需要自己安装。
npm install extract-text-webpack-plugin --save
原来的`style-loader`就要修改了,毕竟我们的目标是将CSS提取出来而不是放在head中, 并且vue文件中<style>里的样式也要提取出来。
var HtmlWebpackPlugin = require('html-webpack-plugin')
var ExtractTextPlugin = require("extract-text-webpack-plugin")
module.exports = {
...
module: {
rules: [
{
test: /\.vue$/,
loader: 'vue-loader',
options: {
loaders: {
stylus: ExtractTextPlugin.extract("css-loader!stylus-loader")
}
}
},
{
test: /\.pug$/,
loader: 'vue-html!pug-html'
},
{
test: /\.styl/,
loader: ExtractTextPlugin.extract("css-loader!stylus-loader")
},
...
plugins: [
new HtmlWebpackPlugin(),
new ExtractTextPlugin("css/style.css")
]
搭建Vue2+Vuex+Webpack+Pug(jade)+Stylus环境的更多相关文章
- 一步步构造自己的vue2.0+webpack环境
前面vue2.0和webpack都已经有接触了些(vue.js入门,webpack入门之简单例子跑起来),现在开始学习如何构造自己的vue2.0+webpack环境. 1.首先新建一个目录vue-wk ...
- 基于vue2+vuex+vue-router+sass+webpack的网易云音乐
[本博客为原创:http://www.cnblogs.com/HeavenBin/] 前言: 这段时间写的一个项目,供给大家互相学习,有什么疑问可以issues我. 源码地址:https://git ...
- 搭建 vue2 单元测试环境(karma+mocha+webpack3)
从网上找了很多例子关于单元测试,都是如何新建项目的时候的添加单元测试,用vue-cli中怎么添加,但是我的项目已经生成了,不能再一次重新初始化,这时如何添加单元测试,这里面遇到了好多坑,写在这里记录一 ...
- vue2.0中使用pug(jade)
第一部分:pug(jade)模板引擎 pug,原名jade,是流行的HTML模板引擎,它是HAML在JavaScript上的实现,最大的特色是使用缩进排列替代成对标签. 它简化了HTML的成对标签的写 ...
- 详解 Webpack+Babel+React 开发环境的搭建
1.认识Webpack 构建应用前我们先来了解一下Webpack, Webpack是一个模块打包工具,能够把各种文件(例如:ReactJS.Babel.Coffeescript.Less/Sass等) ...
- Vue2.0+Webpack项目环境构建到发布
前言:为什么要用webpack搭建项目呢,因为这个工具可以把目前浏览器不全部支持的ES6语法,通过打包工具生成所有浏览器都支持的单个JS文件. 参考: https://blog.csdn.net/u0 ...
- vue_使用npm搭建vue2.0脚手架开发环境
前言: 在使用vue进行开发时需要搭建vue的运行环境,这里主要是使用淘宝镜像cnpm进行搭建vue的脚手架开发环境.主要是分为mac和window两个版本,两个环境的搭建都是大同小异. mac开发环 ...
- webpack+babel+ES6+react环境搭建
webpack+babel+ES6+react环境搭建 步骤: 1 创建项目结构 注意: 先创建一个项目目录 react 这个名字自定义,然后进入到这个目录下面 mkdir app //创建app ...
- 从零开始搭建一个简单的基于webpack的vue开发环境
原文地址:https://segmentfault.com/a/1190000012789253?utm_source=tag-newest 从零开始搭建一个简单的基于webpack的react开发环 ...
随机推荐
- python的__all__
用来暴露接口 控制 from xxx import * 的行为 代码中当然是不提倡用 from xxx import * 的写法的,但是在 console 调试的时候图个方便还是很常见的.如果一个模块 ...
- (转)Springboot日志配置(超详细,推荐)
Spring Boot-日志配置(超详细) 更新日志: 20170810 更新通过 application.yml传递参数到 logback 中. Spring Boot-日志配置超详细 默认日志 L ...
- Linux下安装zookeeper集群(奇数个)
1. 解压zookeeper压缩包 2. data里创建“myid”文件(命令touch myid),内容是1(命令 echo 1 >> myid) 3. zoo.cnf里配置dat ...
- 远程访问对象java实现
服务端: 定义远程接口: package com.my.rmi; import java.rmi.Remote; import java.rmi.RemoteException; public int ...
- socket发送http报文的疑惑(求高手指点一二)
给8080或80端口的服务端(自己写的serverSocket服务端)发送字符串,此字符串按照http协议拼接而成,既是所谓的http报文.服务端接受成功.如果在报头与消息体之间少了“\r\n\r\n ...
- js动态规划---背包问题
//每种物品仅有一件,可以选择放或不放 //即f[i][w]表示前i件物品恰放入一个容量为w的背包可以获得的最大价值. //则其状态转移方程便是:f[i][w]=max{f[i-1][w],f[i-1 ...
- node 图片验证码生成
var captchapng = require('captchapng'); var http = require("http") var server = http.creat ...
- python中参数传递之位置传递、关键字传递、包裹传递与解包裹
原文地址https://blog.csdn.net/love666666shen/article/details/77131487 1.位置与关键字传递 (1)位置传递:先用形式参数定义,然后在调用时 ...
- UGUI之Image使用以及技能释放CD
顾名思义:Image就是用来显示图片的 Image中Image组件中有一个重要的熟悉:Image type
- Linux 重启nginx
重启 1.验证nginx配置文件是否正确 方法一:进入nginx安装目录sbin下,输入命令./nginx -t 看到如下显示nginx.conf syntax is ok nginx.conf te ...