美文网首页
无标题文章

无标题文章

作者: col128 | 来源:发表于2016-09-01 22:29 被阅读0次

    webPack

    Webpack是目前比较流行的前端打包工具,它同时支持AMD、CMD两种模块写法,也原生支持npm或者bower安装的模块。它还能给css、scss、less、coffeescript、es6、图片、html以及诸如jade、ejs的模板打包。

    webPack

    webpack 的优势

    官网

    初始化

    安装

    测试

    本地安装

    示例

    webpack 的优势

    其优势主要可以归类为如下几个:

    支持CommonJS、ES6、AMD、UMD等,(甚至是混合形式)方便旧项目进行代码迁移。

    可以打包成一个完整的包,也可以分成多个部分,在运行时异步加载(可以减少初始加载时间)。

    依赖在编译时即处理完毕,可以减少运行时包的大小。

    Loaders可以使文件在编译时得到预处理,这可以帮我们做很多事情,比如说coffee转换成JavaScript,模板的预编译,图片的base64处理;

    开发便捷,能替代部分 grunt/gulp 的工作,比如打包、压缩混淆、图片转base64等。

    扩展性强,高度模块化插件系统可以适应多变的需求。

    官网

    http://webpack.github.io/

    http://www.jianshu.com/p/f0df52969a5e

    初始化

    npm init

    安装

    npm install webpack -g

    测试

    webpack -V

    本地安装

    npm install –save webpack

    npm install webpack –save-dev

    示例

    创建空目录Demo文件夹 文件夹中创建app空文件夹

    在app文件夹中创建entry.js文件

    文件内容如下

    app>entry.js

    document.write("It works.");

    app>index.html

    webpack入门

    执行命令:

    cd Demo/app

    webpack ./entry.js bundle.js

    该命令会对entry.js文件编译并创建一个bundle.js文件

    如果成功的话,它会显示如下:

    Hash: ca188ee5789bb780fcec

    Version: webpack1.13.0

    Time:65ms

    Asset    Size  Chunks            Chunk Names

    bundle.js1.42kB0[emitted]  main

    [0] ./entry.js28bytes {0} [built]

    在浏览器中打开index.html 显示 It works.

    配置文件webpack.config.js

    module.exports = {

    context: __dirname +'/app',//上下文

    entry:'./index.js',//入口文件

    output: {//输出文件

    path: __dirname +'/app',

    filename:'./bundle.js'

    },

    module: {

    loaders: [//加载器

    {test:/\.html$/, loader:'raw'},

    {test:/\.css$/, loader:'style!css'},

    {test:/\.scss$/, loader:'style!css!sass'},

    {test:/\.(png|jpg|ttf)$/, loader:'url?limit=8192'}

    ]

    }

    };

    基础代码:

    varwebpack =require("webpack");

    varpath =require("path");

    module.exports = {

    entry:'./src/main.js',//入口文件,webpack会从入口文件出开始查找依赖递归进行打包

    output: {

    path: path.join(__dirname,'www'),//打包后的文件位置

    filename:'js/bundle.js',//打包后的文件名

    },

    module: {

    loaders: [//配置模块加载器,数组形式

    { test:/\.(js|jsx)$/, loaders: ['babel?presets[]=react,presets[]=es2015'] },//babel加载器用于将es6转化成es5,使用前请先安装babel-loader再引入加载器

    ],

    }

    };

    相关文章

      网友评论

          本文标题:无标题文章

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