美文网首页
Webpack的使用

Webpack的使用

作者: 阿根廷斗牛 | 来源:发表于2017-07-22 14:37 被阅读0次

    webpack 2,3版本的网站 : https://webpack.js.org/

    什么是WebPack,为什么要使用它?

    WebPack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),并将其打包为合适的格式以供浏览器使用。

    WebPack和Grunt以及Gulp相比有什么特性

    其实Webpack和另外两个并没有太多的可比性,Gulp/Grunt是一种能够优化前端的开发流程的工具,而WebPack是一种模块化的解决方案,不过Webpack的优点使得Webpack可以替代Gulp/Grunt类的工具。

    Grunt和Gulp的工作方式是:在一个配置文件中,指明对某些文件进行类似编译,组合,压缩等任务的具体步骤,这个工具之后可以自动替你完成这些任务。

    Webpack的工作方式是:把你的项目当做一个整体,通过一个给定的主文件(如:index.js),Webpack将从这个文件开始找到你的项目的所有依赖文件,使用loaders处理它们,最后打包为一个浏览器可识别的JavaScript文件。

    如果实在要把二者进行比较,Webpack的处理速度更快更直接,能打包更多不同类型的文件。

    开始使用Webpack

    1.安装

    在安装 Webpack 前,你本地环境需要支持node.js


    全局安装 npm install -g webpack

    安装到项目目录 npm install --save-dev webpack


    2.开始 

    1.在终端中使用npm init命令可以自动创建这个package.json文件

    2.安装到项目目录 npm install --save-dev webpack

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

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

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

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

    正式使用Webpack

    webpack可以在终端中使用,其最基础的命令是

    webpack 入口文件(例如 main.js)  出口文件(例 bundle.js)

    结果如下

    通过配置文件来使用Webpack(另外一种方式)

    Webpack拥有很多其它的比较高级的功能(比如说本文后面会介绍的loaders和plugins),这些功能其实都可以通过命令行模式实现,但是正如已经提到的,这样不太方便且容易出错的,一个更好的办法是定义一个配置文件,这个配置文件其实也是一个简单的JavaScript模块,可以把所有的与构建相关的信息放在里面。

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

    新建 webpack.config.js 配置文件

    module.exports={

    entry:"./src/main.js",//打包的入口

    output:{

    path:path.join(__dirname,'./dist/'),  //path必须是绝对路径,用来配置资源打包的出口目录

    filename:"bundle.js",

    //在打包结果中,webpack默认将内容的资源应用路径是相对于bundle.js文件,就是

    //注:这里用到的path.join()指令是node的方法,使用的话需要var path=require('path'),先 引入 才可以使用

    }

    }

    现在如果你需要打包文件只需要在终端里你运行webpack(非全局安装需使用node_modules/.bin/webpack)命令就可以了,这条命令会自动参考webpack.config.js文件中的配置选项打包你的项目,输出结果如下

    又学会了一种使用Webpack的方法,而且不用管那烦人的命令行参数了,有没有感觉很爽。有没有想过如果可以连webpack(非全局安装需使用node_modules/.bin/webpack)这条命令都可以不用,那种感觉会不会更爽~,继续看下文。

    更快捷的执行打包任务

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

    {

    "name": "webpack-sample-project",

    "version": "1.0.0",

    "description": "Sample webpack project",

    "scripts": {

    "build": "webpack" //配置的地方就是这里啦,运行指令可以直接写npm run build

    },

    "author": "zhang",

    "license": "ISC",

    "devDependencies": {

    "webpack": "^1.12.9"

    }

    }

    加载css步骤

    文档  https://webpack.js.org/guides/asset-management/#loading-css

    1. npm install --save-dev style-loader css-loader

    2.webpack.config.js

    module: {

    rules: [

    {

    test: /\.css$/,  //正则匹配css文件解析

    use: [

    'style-loader',

    'css-loader'  //注意:这里必须style在前 ,css在后

    ]

    }

    ]

    }

    };

    Loading Images 图片加载

    文档  https://webpack.js.org/guides/asset-management/#loading-images

    1、加载

    npm install --save-dev file-loader

    2.配置 webpack.config.js

    {

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

    use: [

    'file-loader'

    ]

    }

    Webpack Sample Project

    作者:zhangwang

    链接:http://www.jianshu.com/p/42e11515c10f

    來源:简书

    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    相关文章

      网友评论

          本文标题:Webpack的使用

          本文链接:https://www.haomeiwen.com/subject/enhukxtx.html