webpack 2安装到入门

前言:如今webpack工具在前端领域非常受欢迎,我 今天就开始学习一下,安装和使用 webpack(从0开始,如有错误望大家谅解),我的node版本是 v7.7.1  npm版本 4.1.2,如何安装这两个node环境,大家可以参考安装Node和NPM( MAC 系统 )(http://blog.csdn.net/xiaowoniuqiren/article/details/60764977)来配置
  • webpack 工具的好处
    1、 切分他的依赖树,按需加载
    2、 缩短初始化加载时间
    3、 任何静态模块都可以视为一个模块在项目中引用
    4、 整合第三方类库,并且把第三方的类库作为一个模块来引用
    -5、可以自定义打包逻辑的能力
    -6、适合大型项目
    这些是webpack的要实现的目的,看这些目的就知道webpack的好处和方便之处,具体想要了解更多的webpack 可以查看webpack中文指南或者webpack 官方文档
  • 安装
    在有node和npm环境的机器上可以直接使用命令行安装webpack

    安装webpack(非全局)

    1、在桌面上创建一个 webpack文件夹
    2、进入到webpack文件
    3、创建package.json 文件,代码自动创建

npm init

package.json文件

{
  "name": "webpack",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "dependencies": {
    "webpack": "^2.2.1"
  },
  "devDependencies": {},
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

4、 安装webpack

安装的过程中可能会很慢,一直卡在那转圈。原因你懂得,我们上的是一个局域网,外面的世界不是你想看就能看的。。。。。如果你像我一样,不能FQ,那你就先暂停吧。执行下面的语句
npm config set registry https://registry.npm.taobao.org
```
// 安装Webpack
npm install --save-dev webpack
     用一下国内的良心镜像。你会发现再执行 npm install webpack --save-dev 会很快的安装完毕。安装完成之后,你会发现,项目中多了一个 node_modules文件夹里面有一个 .bin和webpack文件夹。此时我们打开终端,输入 webpack会提示 webpak不是内部命令。不用怕,因为这个执行文件在你的项目下的 node_modules\.bin
     下面,只要将这个路径配入 环境变量的 path中去 ,就可以愉快的使用 webpack了!



**注意**:最好先配置package.json文件,我在安装的时候 34 反了,好久都没有安装成功

## 简单使用 ##

     1、回到之前的空文件夹,并在里面创建两个文件夹,app文件夹和public文件夹,app文件夹用来存放原始数据和我们将写的JavaScript模块,public文件夹用来存放准备给浏览器读取的数据(包括使用webpack生成的打包后的js文件以及一个index.html文件)。在这里还需要创建三个文件,index.html 文件放在public文件夹中,两个js文件(Greeter.js和main.js)放在app文件夹中,此时项目结构如下图所示

这里写图片描述


Greeter.js 代码
作用:只包括一个用来返回包含问候信息的html元素的函数。

// Greeter.js
module.exports = function() {
var greet = document.createElement(‘div’);
greet.textContent = “Hi there and greetings!”;
return greet;
};

main.js代码
作用:用来把Greeter模块返回的节点插入页面。

//main.js
var greeter = require(‘./Greeter.js’);
document.getElementById(‘root’).appendChild(greeter());

html代码
作用:文件只有最基础的html代码,它唯一的目的就是加载打包后的js文件(bundle.js





Webpack Sample Project






    **注意**你会发现没有创建bundle.js,不用担心,webpack会自动创建

2、简单使用Webpack
    只需要指定一个入口文件,webpack将自动识别项目所依赖的其它文件,不过需要注意的是如果你的webpack没有进行全局安装,那么当你在终端中使用此命令时,需要额外指定其在node_modules中的地址,继续上面的例子,在终端中属于如下命令

//webpack非全局安装的情况
node_modules/.bin/webpack app/main.js public/bundle.js

结果如下图

这里写图片描述


    可以看出webpack同时编译了main.js 和Greeter,js,现在打开index.html,可以看到如下结果

这里写图片描述


3、通过配置文件来使用Webpack

     还是继续上面的例子来说明如何写这个配置文件,在当前练习文件夹的根目录下新建一个名为webpack.config.js的文件,并在其中进行最最简单的配置,如下所示,它包含入口文件路径和存放打包后文件的地方的路径。

webpack.config.js代码

module.exports = {
entry: __dirname + “/app/main.js”,//已多次提及的唯一入口文件
output: {
path: __dirname + “/public”,//打包后的文件存放的地方
filename: “bundle.js”//打包后输出文件的文件名
}
}

注意:“__dirname”是node.js中的一个全局变量,它指向当前执行脚本所在的目录。


     为了看出来效果我们修改一下Greeter.js中输出的文案,编译完成之后观看效果

// Greeter.js

module.exports = function() {
var greet = document.createElement(‘div’);
greet.textContent = “测试一下 “;
return greet;
};

这次再运行webpack就不需要繁琐的指定从那个文件打包到那个文件,配置文件已经设置完毕

node_modules/.bin/webpack

结果一样正常


这里写图片描述


**更加快捷的打包方法**

       执行类似于node_modules/.bin/webpack这样的命令其实是比较烦人且容易出错的,不过值得庆幸的是npm可以引导任务执行,对其进行配置后可以使用简单的npm start命令来代替这些繁琐的命令。在package.json中对npm的脚本部分进行相关设置即可,设置方法如下。

{
“name”: “webpack”,
“version”: “1.0.0”,
“description”: “”,
“main”: “index.js”,
“dependencies”: {
“webpack”: “^2.2.1”
},
“scripts”: {
“test”: “echo \”Error: no test specified\” && exit 1”,
“start”: “webpack”
},
“author”: “”,
“license”: “ISC”
}


然后在里面增加了 一句配置

“start”: “webpack”

之后直接使用 代码 
注意:不能使用一下代码

“start”: “webpack” //配置的地方就是这里啦,相当于把npm的start命令指向webpack命令

就是添加注释,我在运行的时候出错,如果你们没有出错,请自行绕过。

npm start
“`
注:package.json中的脚本部分已经默认在命令前添加了node_modules/.bin路径,所以无论是全局还是局部安装的Webpack,你都不需要写前面那指明详细的路径了。

npm的start是一个特殊的脚本名称,它的特殊性表现在,在命令行中使用npm start就可以执行相关命令,如果对应的此脚本名称不是start,想要在命令行中运行时,需要这样用npm run {script name}如npm run build,以下是执行npm start后命令行的输出显示

这里写图片描述

可以测试成功了,下一篇继续写 webpack的强大功能

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值