vue学习前奏——webpack
“工欲善其事必先利其器”,要想学习vue,首先需要我们去了解webpack,便于后期快速构建运行项目。废话不多说,下面开始介绍在开始一个vue项目前我们需要对webpack有一定的了解——webpack敲门篇。
第一步:安装Node.js
下载地址:http://nodejs.cn/download/
安装就是傻瓜式的,一直下一步就可以。安装完毕后可以通过cmd输入npm -v查看是否安装成功。//node a.js 可以运行a.js
npm(node package manage of JavaScript)作用:Node.js下载后自带npm,类似于迅雷,可以下载项目所需的依赖模块/包。
允许用户从NPM服务器下载别人编写的第三方包到本地使用。
允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
- 允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用。
注:npm是国外的,可能会比较慢,建议安装cnpm,安装方法:npm install -g cnpm --registry=https://registry.npm.taobao.org
第二步:npm init初始化生成package.json
首先建立一个项目文件夹,进入文件夹,shift+右击,出现【在此处打开命令窗口(W)】,点击进入cmd控制台,目录即为当前文件夹目录。然后输入npm init,回车,会出现一些项目有关参数,可一路回车,完成后创建一个package.json。
package.json用来存放整个项目的依赖模块/包,当我们把整个项目迁移到别的地方使用时,项目运行时会根据package.json的依赖参数自动下载所需模块/包。
第三步:安装webpack
命令:npm install webpack --save-dev
测试webpack在本地是否可用,webpack -v 如果出现webpack为无效命令,则使用全局安装webpack:npm install webpack -g --save-dev
WebPack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),并将其转换和打包为合适的格式供浏览器使用。
Grunt和Gulp的工作方式是:在一个配置文件中,指明对某些文件进行类似编译,组合,压缩等任务的具体步骤,工具之后可以自动替你完成这些任务。
第四步:利用webpack打包模块并运行
webpack可以解析es6,但注意require请求同级目录文件时(./)也要写,代表同级目录。(../)代表上级目录。
如果需要把css打包到js文件中,需要安装css加载器,安装命令:npm install --save-dev style-loader css-loader.
css-loader 和 style-loader,二者处理的任务不同,css-loader使你能够使用类似@import 和 url(...)的方法实现 require()的功能,style-loader将所有的计算后的样式加入页面中,二者组合在一起使你能够把样式表嵌入webpack打包后的JS文件中。(不推荐)手动打包并运行:
# {extry file}出填写默认入口文件index.js的路径
# {destination for bundled file}处填写打包文件的目标存放路径,运行后会自动创建一个bundle.js/build.js
# 填写路径的时候不用添加{}
webpack {entry file} {destination for bundled file} //如webpack ./js/index.js ./dist/bundle.js
在js文件中引入css文件语法:require('style-loader!css-loader!../css/index.css');注意顺序不能错!
(推荐)自动打包并运行:
需要在项目的根目录创建webpack.config.js.项目里配置如下:
module.exports = {
entry: __dirname + "/app/main.js",//已多次提及的唯一入口文件
output: {
path: __dirname + "/public",//打包后的文件存放的地方
filename: "bundle.js"//打包后输出文件的文件名
},
//配置css加载器的方法试了很多,就这个可以用(rules代替了loaders).
//配置好以后:require('style-loader!css-loader!../css/index.css')就可以写成require('../css/index.css');
module: {
rules: [
{
test: /\.css$/,
use: [
{ loader: "style-loader" },
{ loader: "css-loader" }
]
}
]
}
}
注:若提示output下path提示不是绝对路径,试着去掉path,finename带上相对路径,即:
output: {
path: './dist/js/', // 打包后所放的路径
filename: 'bundle.js'// 打包之后的文件名
}
改成:
output: {
filename: './dist/js/bundle.js' // 打包之后的文件名
}
第五步:搭建webpack服务器进行热加载自动刷新
写到这里,使用webpack一个单词就可以打包运行我们的项目了,但接下来...webpack最牛逼的地方来了——webpack可以像php/java/.net...一样搭建为我们搭建一个服务器,这样就可以热更新项目代码,实现实时运行项目,进而方便我们调试项目。
1、安装: npm install webpack-dev-server -g
2、写入到依赖: npm install webpack-dev-server --save-dev
3、第三步:修改webpack配置文件中的output:
output:{
path:"/", //注意这里的改变,必须是根目录,指定目录无效,因为webpack会在内存中根目录下生成下面文件名。
filename:"bundle.js"
}
4、修改index.html
<script type="text/javascript" src="bundle.js"></script>
5、运行命令 实现自动刷新: webpack-dev-server --hot --inline
6、输入localhost:8080/运行...
说明:webpack-dev-server的默认端口是8080
讲到这里,算是敲了一下webpack的门,可能还不算事入门,webpack的配置还有很多,详情学习还是需要花很多时间的。但毕竟webpack是工具,学好如何在相应的项目中运用才是最主要的。这里只是简单介绍了如何利用webpack打包文件、如何搭建服务器进行热更新。
下一篇:如何利用webpack搭建vue的利器——vue-cli(vue脚手架)!
vue学习前奏——webpack的更多相关文章
- Vue学习之Webpack小结(十二)
一.nrm: nrm是专门用来管理和快速切换私人配置的registry; nrm提供了一些最常用的npm包镜像地址,能够让我们快速的切换安装包时候的服务器地址: 二.镜像: 原来 包 刚一开 ...
- Vue学习之webpack调用第三方loader(十五)
---恢复内容开始--- 一.webpack 默认只能打包处理 JS 类型的文件,无法处理 其他的非 JS 类型的文件: 如果非要处理 非 JS 类型的文件,我们需要手动安装一些 合适 第三方 lo ...
- Vue学习之Webpack基本使用小结(十三)
一.新建dist 文件夹: 二.新建src文件夹: 在其下面创建 css .js .images文件夹及 index.html.main.js(这是项目Js的主入口) 三.html中简单创建一个列表: ...
- Vue学习之webpack中使用vue(十七)
一.包的查找规则: 1.在项目根目录中找有没有 node_modules 的文件夹: 2.在 node_modules 中根据包名,找对应的vue 文件夹: 3.在vue 文件夹中,找 一个叫做 pa ...
- vue学习之webpack
本质上,Webpack是一个现代 JavaScript应用程序的静态模块打包器(module bundler).当 Webpack处理应用程序时,它会递归地构建一个依赖关系图(dependency g ...
- Vue学习笔记-nodejs+vue-cli4+webpack按装配置+项目创建
一 使用环境: windows 7 64位操作系统 二 Vue学习-nodejs按装配置,Node.js 就是运行在服务端的 JavaScript. 1. 去nodejs的官网下载 https: ...
- Vue学习笔记-Vue.js-2.X 学习(四)===>脚手架Vue-CLI(基本工作和创建)
(五) 脚手架Vue-CLI 一 Vue-CLI前提(nodejs和webpack) 二 Vue学习-nodejs按装配置,Node.js 就是运行在服务端的 JavaScript. 1. 去nod ...
- day 83 Vue学习之五DIY脚手架、webpack使用、vue-cli的使用、element-ui
Vue学习之五DIY脚手架.webpack使用.vue-cli的使用.element-ui 本节目录 一 vue获取原生DOM的方式 二 DIY脚手架 三 vue-cli脚手架的使用 四 we ...
- vue学习:vue+webpack的快速使用指南(新手向)
一.vue有两种使用方式: 1.下载vue.js <script src="vue.js"></script> 2.使用npm npm install vu ...
随机推荐
- 团队作业8——Beta 阶段冲刺5th day
一.当天站立式会议 二.每个人的工作 (1)昨天已完成的工作(具体在表格中) 支付功能测试 (2)今天计划完成的工作(具体如下) 完善订单功能 (3)工作中遇到的困难(在表格中) 成员 昨天已完成的工 ...
- 扫雷游戏制作过程(C#描述):第二节、界面设计
前言 这里给出教程原文地址. 该项目已经放在github上托管. 扫雷界面设计 界面的设计,首先需要创建一个菜单栏.具体方法在左边找到工具箱窗口,展开其中的菜单和工具栏,找到MenuStrip选项,双 ...
- 201521123100《Java程序设计》第八周学习总结
---恢复内容开始--- 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结集合与泛型相关内容. 2. 书面作业 本次作业题集集合 1.List中指定元素的删除(题目4-1) 1.1 ...
- 201521123036 《Java程序设计》第6周学习总结
本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 1.2 可选:使用常规方法总结其他上课内容. 对象克隆:Clon ...
- 201521123100 《Java程序设计》第6周学习总结
1. 本周学习总结 1.1 面向对象学习暂告一段落,请使用思维导图,以封装.继承.多态为核心概念画一张思维导图,对面向对象思想进行一个总结. 注1:关键词与内容不求多,但概念之间的联系要清晰,内容覆盖 ...
- Java实现Windows平台下Ping的最佳方法
先上结论:通过调用系统自带的Ping命令来实现,使用exitValue()值来判断Ping的结果.按照惯例,0表示ok,1表示不通. private static void pingTest1() t ...
- 201521123063 《Java程序设计》 第11周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. (1)多线程的冲突 当我们不想一种资源被同时使用,导致最后结果不一致,解决方法: 使用synchronized标记 ...
- 201521123069 《Java程序设计》 第14周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. 2. 书面作业 1. MySQL数据库基本操作 建立数据库,将自己的姓名.学号作为一条记录插入.(截图,需出现自 ...
- 201521123009 《Java程序设计》第1周学习总结
1. 本周学习总结 对Java进行了了解与简单的学习.第一次接触Java觉得比较难理解. 希望之后的深入学习可以解决目前的一些问题. 2. 书面作业 为什么java程序可以跨平台运行?执行java程序 ...
- hadoop源码import到eclipse工程
1.解压hadoop-1.1.2.tar.gz,重点在src文件夹 2.在eclipse中通过菜单栏创建一个java工程,工程名随便 3.在创建的工程上,点击右键,在弹出菜单中选择最后一项,在弹出窗口 ...