zoukankan      html  css  js  c++  java
  • webpack

    webpack

    现代JavaScript应用程序的静态模块打包器(module bundler)。当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle。

    • 前端模块化管理和加载工具:模块化
    • 编译打包工具:打包

    基于Node.js的自动化构建工具。

    __dirname:当前执行脚本所在目录  

    引出

    • 浏览器不能直接解析 JSX 和 ES6 语法
    • 一切皆模块

    全局安装webpack,或者,仅安装到当前目录(推荐,避免版本冲突):

    //全局
    npm install webpack -g
    //当前目录执行
    npm install --save-dev webpack
    

    需同时安装 webpack webpack-cli 

    webpack若要处理js模块之外的文件,需要 loader 载,此处总结下,后续待更新

    /// .css 文件
    css-loader: css模块依赖解析
    style-loader: 创建style标签 
    /// 处理图片
    url-loader
    file-loader
    /// 辅助编译,bable: 下一代js语法编译器(推荐将babel的配置选项放在单独的.babelrc文件中)
    babel-cli 
    babel-preset-env:解析ES6
    babel-core:核心包 
    babel-loader 
    babel-preset-es2015 
    babel-preset-react:解析JSX
    

    关于配置文件,当前目录执行 npm init 会自动创建package.json文件。 

    核心

    • 入口(entry)
    • 输出(output)
    • modue: loader
    • 插件(plugins)

    重点关注 loader 和 plugins:

    loader 

    • test:正则表达式
    • loader:‘xxx-loader’,若有多个,key值loader应该写为loaders
    • includer/exclude:
    • query:额外参数配置

    注意,webpack loader的执行顺序是从右到左。

    plugins

    拓展webpack功能。与loaders是在打包构建过程中用来处理源文件相比,plugins是在整个构建过程中生效,执行相关的任务。

    插件使用步骤:

    1. npm install 安装
    2. 配置文件中新增配置 new xxxx()

    提供常用插件:

    • Hot Module Replacement(HMR):自动刷新,实时预览
    • uglifyjs-webpack-plugin:js压缩
    • ExtractTextPlugin:分离CSS和JS文件
    • HtmlWebpackPlugin:依据一个简单的index.html模板,生成一个自动引用打包后的JS文件的新index.html

    其中,针对React模块,利用babel的 react-transform-hrm 插件,可以无需额外配置、方便实现热加载功能。

    除此四个核心配置之外,还有其他配置参数

    • devtool:生成Source Maps,方便调试
    • devServer:配置本地开发服务器参数
    • resolve:配置短路径引用,避免路径太长

    以上,参考自:入门webpack;同时推荐网上一个极好的例子,供学习。

    webpack-dev-server

    小型Express服务器,本质:监听代码,自动刷新

    利用 webpack-dev-server 本地开发服务器,通过 localhost:8080 启动一个 express 静态资源 web 服务器,以监听模式自动运行 webpack,在浏览器打开 http://localhost:8080/ 或 http://localhost:8080/webpack-dev-server/ 即可,一个 socket.io 服务会实时监听变化并自动刷新页面。

    • 为静态文件提供服务
    • 自动刷新和热替换(HMR)
    # 安装
    cnpm install webpack-dev-server -g
    # 运行 (--加载进度  --启用监听模式)
    webpack-dev-server --progress --watch
    

    同时需要在package.json中添加脚本

    "scripts": {
        "start": "webpack-dev-server --inline --hot --config webpack.config.js",
     }

    npm start 启动项目即可,其中, --hot 热替换, --inline 自动刷新。  

    参考

    webpack 中文文档 | webpack 中文网; 

    从create-react-app学习webpack系列(一、二、三); 

  • 相关阅读:
    [BJOI2006]狼抓兔子
    hdu 1878 欧拉回路,图的连通性判断
    poj 3844 Divisible Subsequences 剩余类,组合计数
    LA 4609 ,poj 3842 An Industrial Spy
    hdu 4639 2013多校第四场 hehe Fibonacci 数列,组合计数,字符串处理
    hdu 4642 Fliping game 翻硬币游戏 抓住特征变量
    13多校#4 ,组队赛#18 总结
    ACM 大牛的博客
    LA 4329 Ping Pong 2008 北京区域赛 H , BIT 二叉索引树(树状数组)的应用
    poj 2689 Prime Distance 二次筛法,找出给定区间所有约数
  • 原文地址:https://www.cnblogs.com/wjcx-sqh/p/9380424.html
Copyright © 2011-2022 走看看