webpack+vue+php,webpack+vue+vueRouter模块化构建完整项目实例超详细步骤(附截图、代码、入门篇)...

>开始(确认已经安装node环境和npm包管理工具)

1、新建项目文件名为vuedemo

2、npm init -y 初始化项目

bVKfw6?w=332&h=209

>安装项目依赖

3、npm install --save vue 默认安装最新版vue

4、npm install --save-dev webpack webpack-dev-server 安装webpack,webpack-dev-server(是一个小型的Node.js Express服务器)

*拓展:npm install 在安装 npm 包时,有两种命令参数可以把它们的信息写入 package.json 文件,一个是npm install --save另一个是 npm install --save-dev,他们表面上的区别是--save 会把依赖包名称添加到 package.json 文件 dependencies 键下,--save-dev 则添加到 package.json 文件 devDependencies 键下,

--save-dev 是你开发时候依赖的东西,--save 是你发布之后还依赖的东西。*

bVKfDd?w=331&h=251

5、npm install --save-dev babel-core babel-loader babel-preset-es2015 安装babel,babel的作用是将es6的语法编译成浏览器认识的语法es5

bVKfEO?w=399&h=238

6、npm install --save-dev vue-loader vue-template-compiler 用来解析vue的组件,.vue后缀的文件

7、npm install --save-dev css-loader style-loader 用来解析css

拓展:css-loader 和 style-loader,二者处理的任务不同,css-loader使你能够使用类似@import 和 url(…)的方法实现 require()的功能,style-loader将所有的计算后的样式加入页面中,二者组合在一起使你能够把样式表嵌入webpack打包后的JS文件中。

8、npm install --save-dev url-loader file-loader 用于打包文件和图片

9、npm install --save-dev sass-loader node-sass 用于编译sass

10、npm install --save-dev vue-router 安装路由

>编辑项目目录以及添加代码

11、文件目录如下;

bVKf1k?w=321&h=530

//dist文件是后面执行webpack指令生产的,不用管;

//webpack.config.js 配置文件,本身也是一个标准的Commonjs规范的模块;

//routes.js文件放路由配置文件;

//index.html首页入口文件

//App.vue是项目入口文件。

//main.js这是项目的核心文件。全局的配置都在这个文件里面配置。

//commponents目录里面放了公共组件header文件。

//views文件放详情页面;

>代码

//webpack.config.js

*注释:

test:一个匹配loaders所处理的文件的拓展名的正则表达式(必须)

loader:loader的名称(必须)

include/exclude:手动添加必须处理的文件(文件夹)或屏蔽不需要处理的文件(文件夹)(可选);*

var path = require('path')

var webpack = require('webpack')

module.exports = {

entry: './src/main.js',//值可以是字符串、数组或对象

output: {

path: path.resolve(__dirname, './dist'),//Webpack结果存储

publicPath: '/dist/',//懵懂,懵逼,//然而“publicPath”项则被许多Webpack的插件用于在生产模式和开发模式下下更新内嵌到css、html,img文件里的url值

filename: 'build.js'

},

module: {

rules: [

{

test: /\.vue$/,

loader: 'vue-loader',

options: {

loaders: {

}

// other vue-loader options go here

}

},

{

test: /\.js$/,

loader: 'babel-loader',

exclude: /node_modules/

},

{

test: /\.(png|jpg|gif|svg)$/,

loader: 'file-loader',

options: {

name: '[name].[ext]?[hash]'

}

}

//自己加的

,

{

test: /\.css$/,

loader: "style-loader!css-loader"

}

,

{

test: /\.scss$/,

loader: "style-loader!css-loader!sass-loader!"

}

]

},

resolve: {

alias: {

'vue$': 'vue/dist/vue.esm.js'

}

},

devServer: {//webpack-dev-server配置

historyApiFallback: true,//不跳转

noInfo: true,

inline: true//实时刷新

},

performance: {

hints: false

},

devtool: '#eval-source-map'

}

if (process.env.NODE_ENV === 'production') {

module.exports.devtool = '#source-map'

// http://vue-loader.vuejs.org/en/workflow/production.html

module.exports.plugins = (module.exports.plugins || []).concat([

new webpack.DefinePlugin({

'process.env': {

NODE_ENV: '"production"'

}

}),

new webpack.optimize.UglifyJsPlugin({

sourceMap: true,

compress: {

warnings: false

}

}),

new webpack.LoaderOptionsPlugin({

minimize: true

})

])

}

//routes.js

// 引用模板

import Vue from 'vue';

import Router from 'vue-router';

import indexPage from './components/header.vue'

import homePage from './views/home.vue'

import aboutPage from './views/about.vue'

Vue.use(Router)

export default new Router({

routes:[

{

path:'/',

component:homePage

},

{

path:'/about',

component:aboutPage

}

]

})

//index.html

Title

//App.vue

{{msg}}

import HeaderTab from './components/header.vue';

export default {

name: 'app',

data () {

return {

msg: 'Welcome to Your Vue.js App'

}

},

components:{

HeaderTab

}

}

/*这里sass编译正常*/

$redColor:#f00;

h2{

color:$redColor;

}

#app {

text-align: center;

color: #2c3e50;

margin-top: 60px;

}

h1, h2 {

font-weight: normal;

}

ul {

list-style-type: none;

padding: 0;

}

li {

text-align: left;

margin: 0 10px;

}

a {

color: #42b983;

}

//main.js

//main.js这是项目的核心文件。全局的配置都在这个文件里面配置

import Vue from 'vue'

import App from './App.vue'

import router from './routes.js'

import './assets/styles/base.css'

//import './assets/sass/reset.sass'//报错暂时不用sass

Vue.config.debug = true;//开启错误提示

new Vue({

router,

el: '#appIndex',

render: h => h(App)

})

//commponents

共同header

logo.png

注意:别忘了添加图片

//views文件放详情页面;

about.vue

//about.vue

about

home.vue

//index.vue

  1. {{ todo.text }}

事件

export default {

name: 'indexP',

data () {

return {

todos: [

{ text: 'Learn JavaScript' },

{ text: 'Learn Vue' },

{ text: 'Build something awesome' }

]

}

},

methods:{

eClick(){

console.log(9999);

}

}

}

//base.css

h1{

color: #999;

}

//reset.sass(这个屏蔽起来先,有报错,,)

//$redColor:#f00;

//h2{

// color:$redColor;

//}

>项目跑起来

执行指令

webpack

bVKf7z?w=534&h=151

执行webpack-dev-server:

webpack-dev-server

bVKf8a?w=417&h=89

浏览器打开生成的链接:如我这里是http://localhost:8083

首页详情页效果:

bVKi9f?w=591&h=603

关于详情页效果:

bVKi9m?w=516&h=521

ok,希望小伙伴们可以一次跑通项目流程

补充:

把webpack和webpack-dev-server命令转成npm命令

安装 across-env:npm install cross-env --save-dev

npm install cross-env --save-dev

package.json 文件添加

"dev": "cross-env NODE_ENV=development webpack-dev-server --open --hot",

"build": "webpack"

bVKh8g?w=661&h=169

ok,执行npm指令npm run dev,浏览器打开新窗口(相当于把npm的dev命令指向webpack-dev-server命令);

npm run dev

执行npm run build(相当于把npm的build指令指向webpack命令)

npm run build

遇到的问题:

1、外部引入.sass文件报错,里面的sass语法编译正常;(上面我屏蔽了sass)

以上结尾。

==================2018/01笔记===============================

vue-cli搭建vue项目流程

1、下载安装node环境和npm包管理工具;(node -v;npm -v检查版本);

2、npm install -g vue-cli;使用npm全局安装vue-cli;(vue -V)(1.在安装vue-cli时,已经自带安装webpack。)

3、vue init webpack projectname;生成项目模板(1.webpack是模板名称,这里我们需要使用webpack的打包功能,所以使用webpack;2.projectname是项目名称)

4、cd projectname

5、npm run dev

6、npm run bulid

注意:文件目录路径不能有中文,会报错

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
课程概述: 本课程是一个小型的vue周边技术+以php为基础的+微信接口开发的小型项目。本项目以微信扫码关注公众号实现网站自动登陆这一功能为载体,将会讲解如下主要核心知识点:前端你将学习到: 一、vue-cli4进行前端项目的创建 二、如何使用vuex进行登陆信息的管理与同步 三、如何使用axios进行接口请求的封装与拦截 四、在脚手架里使用Element-UI 五、学习组件化编程的思想 六、如何解决接口前后端分离引起的跨域问题以及在跨域下使用cookie凭证进行会话维护 后端你讲学习到: 一、如何申请微信公众号测试账号,如何进行相关参数的配置,如何进行微信相关接口的开发 二、如何使用微信接口开发,如获取临时二维码,获取用户基础信息,监听公众号关注以及扫描事件 三、如何使用redis对数据进行缓存 四、如何使用php原生代码进行接口的开发 五、如何使用laralvel 7.x 框架进行接口的开发 六、学习到laravel 中核心概念的使用方法,如什么是依赖注入,如何使用服务容器解决依赖注入、服务提供者、中间件的使用,如何处理请求数据,如何进行用户认证,以及如何使用Eloquent ORM进行数据库操作 七、开发过程中遇到的问题,如何进行排查 八、git远端仓库的建立与配置,如何在配置多仓库下的公钥,服务器端部署公钥的配置,如何进行代码部署,本地与服务器代码开发实时同步 九、如何使用composer帮助我们进行第三方依赖包的安装 本课程的设计思路随笔: 从业务层面上来讲,扫码关注公众号,实现网站端自动登陆是一个非常实用的功能,可以为微信公众号引流。 技术层面上来说,使用前后端分离进行制作,可以将前端以及后端的知识都涵盖到。对于前端的路由,信息维护,脚手架的搭建,ui组件的使用,接口的请求与封装都能够讲解到。 对于后端,本课程对php原生代码以及工作中使用频率比较高的同时也很优雅的laravel框架都会进行讲解,分别予以代码的实现。让同学们能够看到原生开发与框架开发的区别,原生开发使得基础比较弱的同学能够慢慢上手,也知道此功能实现的核心要点,在进行原生代码开发后,再进行框架开发,会有个循序渐进的过程,同时在框架里面我们会降到主流框架都会用到的一些核心思想,比如依赖注入,服务容器,中间件等等,同时对于想学习laravel框架的同学,学习过这个案例后,再去看文档就知道该如何去看,如何去学了。 对于整个代码的管理与部署,我们也会引入git仓库进行项目代码管理,如何在服务器进行网站环境的搭建代码部署等等实用技巧。 相信本课程会给大家带来十足的收获,大家加油。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值