1.webpack的安装

1.1在安装node的基础上,npm install -g webpack(window版本,因为是全局安装,所以无所谓是哪个路径下)

1.2新建一个文件夹用于此项目  eg:D盘新建一个mywebpack文件夹

1.3找到这个文件夹,npm init   完成之后在mywebpack文件夹中出现一个package.json文件,文件中是刚执行的操作内容

1.4在mypack文件中新建一个index.html,引入一个bundle.js(注意:这时bundle.js是没有的),再新建一个app.js,app.js中写入操作。要达到的目的是引用bundle.js一个js文件可以用到app.js或更多js的功能。

代码:

app.js中:

alert("我是app.js")

然后运行:在同等目录下执行webpack  app.js  bundle.js  这时,运行index.html会出现app.js里面的内容,文件夹中会自动创建bundle.js

1.4.1   如果想要bundle.js用到app.js以及其他js的内容可以这样做。

新建people.js

//字符串形式
module.exports="我是people.jshhh";
//函数形式
function getinfo(){ //函数
return "我是函数";
}
module.exports=getinfo(); //getinfo()对外公开
//数组、对象形式
let people=[
{name:"hanna"},
{name:"xumin"}
]
module.exports=people;

app.js中

//需要用require注入,需要注意的是require后面,如果是自己写的js,就算是同级目录也需要写./   如果是引入的库什么的不需要写./
var people=require("./people.js");
console.log(people[0].name);

当然每次修改了需要执行一次:webpack  app.js  bundle.js   如果想要每修改一次自动监听,执行一次webpack app.js bundle.js  --watch  就可以了

2.webpack-运用第三方库

2.1 使用第三方库(jquery)

对应文件夹下 npm install iquery --save

//测试是否引用了jquery
let $=require("jquery");
$.each(people,function(key,value){
$("body").append("<h3>"+people[key].name+"</h3>")
});

2.2 模块化静态文件(css)

要安装css-loader  做法是在当前目录执行  npm install css-loader style-loader --save-dev

require("!style-loader!css-loader!./index.css")

2.3 使用配置文件webpack.config.js (当需要有多个css文件引入时,需要用到webpack.config.js)

做法:(1)在mywebpack文件夹下面新建webpack.config.js(名称一定是这个)

(2)在webpack.config.js中写

module.exports={
//入口文件
entry:"./app.js",
//出口文件
output:{
path:__dirname, //当前路径
filename:"bundle.js"
},
//需要依赖的插件或者装载器
module:{
loaders:[
{test:/\.css$/,loader:"style-loader!css-loader"}
]
}
}

然后app.js中需要修改:

有原来的require("!style-loader!css-loader!./index.css")

修改为:require("./index.css");

重新执行webpack  app.js bundle.js --watch就可以啦

优化一下:

mywebpack下面创建src文件夹(js文件夹、css文件夹),可以把之前的app.js、people.js放入src下面的js文件夹中,其中对应的文件路径对应修改一下,可以删掉bundle.js文件,重新生成一下:

webpack.config.js中变化:

module.exports={
//入口文件
entry:"./src/js/app.js",
//出口文件
output:{
path:__dirname+"/dist",
filename:"bundle.js" //在当前路径下创建dist文件夹,在dist文件夹下面创建bundle.js
},
//需要依赖的插件或者装载器
module:{
loaders:[
{test:/\.css$/,loader:"style-loader!css-loader"}
]
}
}

修改其他文件对应的文件时,在当前文件下执行webpack就可以,不再是webpack app.js bundle.js --watch   因为路径发生了变化,执行webpack可以找到webpack.config.js,即一切顺理成章。

再优化:可以在package.json文件夹中修改

"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},

 "scripts": {
"build":"webpack"
},

这样在当前文件夹下面只需要执行npm run build就可以    不需要是webpack

2.4 使用webpack-dev-server

2.4.1 使用webpack-dev-server(可以搭建服务器,实时监听)

其好处是可以将自己的项目在本地的服务器中去运行

(1)首先安装

npm install -g webpack-dev-server --save-dev

(2)在package.json中修改添加start

"scripts": {
"start":"webpack-dev-server --entry .src/js/app.js --output-filename ./dist/bundle.js",
"build":"webpack"
},

在当前文件夹下面执行 npm run build创建完项目,npm start 可以利用本地的服务器来监听做错

2.4.2 使用babel转换插件(可以将es6语法转换成es5语法,)

(1)安装babel

npm install babel-core babel-loader babel-preset-es2015 --save-dev     (这里-es2015是你想要转换成的语言,这里是es5,babel-core是核心插件, babel-loader是装载器)

(2)在webpack.config.js中配置

module:{
loaders:[
{test:/\.css$/,loader:"style-loader!css-loader"},
{
test:/\.js$/,loader:"babel-loader",
exclude:/node_modules/, //除了这个文件
query:{ //查询
preset:["es2015"]
}
}
]
}

(3)重构项目   npm run build

(4)npm start   运行

(5)可以在bundle.js中看到已经将app.js中使用的es6语法修改为es5了。

模块打包工具webpack的更多相关文章

  1. 浅谈Webpack模块打包工具一

    为什么要使用模块打包工具 1.模块化开发ES Modules存在兼容性问题 打包之后成产阶段编译为ES5 解决兼容性问题 2.模块文件过多 网络请求频繁  开发阶段把散的模块打包成一个模块 解决网络请 ...

  2. 打包工具webpack和热加载深入学习

    本次小编呢,为大家带来一篇深入了解打包工具 webpack. 我们今天使用的是 webpack3.8.1版本的,我们学习使用 3.8.1更稳定些,并学习自己如何配置文件,最新版本不需要自己配置文件,但 ...

  3. 浅谈Webpack模块打包工具四

    Webpack 生产环境优化 生产环境和开发环境有很大的差异,生产环境只注重运行效率,开发环境主要开发效率,webpack4.0开始提出了(mode)模式的概念 针对不同的环境进行不同的配置,为不同的 ...

  4. 模块化管理工具兼打包工具 webpack

    webpack 是一个[模块化管理工具]兼[打包工具] 是一个工具(和seajs,requirejs管理前端模块的方式是不一样) 在webpack一个文件就是一个模块! seajs,requirejs ...

  5. 好用的打包工具webpack

    <什么是webpack> webpack是一个模块打包器,任何静态资源(js.css.图片等)都可以视作模块,然后模块之间也可以相互依赖,通过webpack对模块进行处理后,可以打包成我们 ...

  6. 细说前端自动化打包工具--webpack

    背景 记得2004年的时候,互联网开发就是做网页,那时也没有前端和后端的区分,有时一个网站就是一些纯静态的html,通过链接组织在一起.用过Dreamweaver的都知道,做网页就像用word编辑文档 ...

  7. 打包工具webpack安装·Mac

    最近在学Vue.js,是我接触的第一个前端框架.本来感觉还不错,各种惊叹于它可以用很少的代码写出那种具备交互能力的神奇模块. 在学的过程中总是能碰到一个叫webpack的单词,查过,是一个模块打包器, ...

  8. 浅谈Webpack模块打包工具三

    Source Map 生产代码与开发代码完全不同,如果需要调试应用的话会非常的麻烦,错误信息无法定位,Soutce Map就会逆向得到源代码, 须在打包之后的代码文件的末尾位置例如添加//# sour ...

  9. Webpack, 现在最流行的模块打包工具.压缩打包

    压缩bundle.js 1.把我们项目的代码从es6 -> es5 [babel] 参考:http://babeljs.io/docs/setup/#installation 1.1.安装包 b ...

随机推荐

  1. 常用kubectl命令总结

    command kubectl kubectl 输出格式 显示Pod的更多信息 kubectl get pod <pod-name> -o wide 以yaml格式显示Pod的详细信息 k ...

  2. CentOS环境变量配置并生效

    配置环境变量 1). #:vi /etc/profile 在最后面添加 PATH=~/dotnet/bin:$PATHexport PATH 2). #:source /etc/profile

  3. VS2012安装ClaudiaIDE失败

    上班看见同事的VS界面.如下图: 出于好奇就问他是怎么弄的,同事告诉我说是VS的一个插件ClaudiaIDE:于是我就去官网上下载ClaudiaIDE, 官网下载ClaudiaIDE链接:http:/ ...

  4. FFmpeg命令详解

    命令格式 功能 FFmpeg命令是在ffmpeg.exe可执行文件环境下执行,ffmpeg.exe用于音视频的转码,加水印,去水印,视频剪切,提取音频,提取视频,码率控制等等功能. 最简单的命令 ff ...

  5. 编程哲学之C#篇:01——创世纪

    我们能否像神一样地创建一个世界? 对于创建世界而言,程序员的创作能力最接近于神--相对于导演,作家,漫画家而言,他们创建的世界(作品)一旦完成,就再也不会变化,创建的角色再也不会成长.而程序员创建的世 ...

  6. 知物由学 | AI时代,那些黑客正在如何打磨他们的“利器”?(一)

    本文由  网易云发布. “知物由学”是网易云易盾打造的一个品牌栏目,词语出自汉·王充<论衡·实知>.人,能力有高下之分,学习才知道事物的道理,而后才有智慧,不去求问就不会知道.“知物由学” ...

  7. ubuntu 16.04 安装Tensorflow

    ubuntu 16.04 安装Tensorflow(CPU) 安装python ubuntu 16.04自带python2.7,因此可以略过这一步 安装pip sudo apt-get install ...

  8. day 47 Django 4的简单应用 创建简单的图书管理 (单表的增删改查)

    前情提要  Django  已经学了大半.. 很多东西已经能够使用在生产环境当中 一:模糊查询 二:单表删除 三:单表修改 四:图书管理 图书管理操作 视图结构 A:路由层 A :配置路由文件 参数解 ...

  9. C# 中out,ref,params参数的使用

    C#中有三个高级参数,分别是out,ref,params:   1.out参数 方法使用return 只能返回一个值(一个数值或一个指针值),out参数可以帮助我们在一个方法中返回多个值,不限类型. ...

  10. GDOI2018滚粗记

    day-50: 高中全体成员去了北京训练,我被虐成傻逼(貌似总分全校倒数第2). day-20: 回广州了,间断式略微考好55555..... day0: 早上起床好像有点晚qwq 然后简单打了个FF ...