• webpack2学习(一)


    准备

    • Node.js
    • NPM or YARN(本文用的yarn)

    前端工程化 解决的问题

    • JavaScript、CSS代码的合并和压缩
    • CSS预处理: Less、Sass、Stylus的编译
    • 生成雪碧图(CSS Sprite)
    • ES6转ES5
    • 模块化
    • ...

    前端工程化工具--webpack

    • 入口 entry
    • 出口 output
    • 加载器 Loaders
    • 插件 Plugins

    webpack模块化

    将业务中写的各种格式的文件(typescript,less,jpg,vue...)通过特定的加载器(Loader)编译后,最终生成.js,.css,.png等静态资源文件。

    模块:在webpack世界里,一张图片、一个css、甚至一个字体,都称为模块(Module),它们彼此之间存在依赖关系
    作用:webpack处理模块之间的依赖关系,并把它们进行打包

    主要应用场景

    • SPA(单页面富应用)

    webpack 基础配置

    • 初始化项目
    • 安装webpack
    • 安装webpack-dev-server(提供服务)
    //找到合适的目录下 
    //新建一个文件夹用于学习webpack
    mkdir webpackStudy
    // 进入目录
    cd webpackStudy
    
    
    // 初始化 快速回车确认即可
    npm init 
    //成功后 后生成一个package.json文件
    
    
    // 本地局部安装webpack 指定版本号(2.3.2)
    // 注意 这里版本号不同可能会导致后边指令运行出错
    yarn add webpack@2.3.2 --save-dev
    
    
    // 安装成功后package.json中会多一项配置
    "dependencies": {
        "webpack": "2.3.2"
      }
      
    // 本地局部安装webpack-dev-server@2.4.2
    //在开发环境中提供:
    //启动一个服务器
    //热更新
    //接口代理
    
    yarn add webpack-dev-server@2.4.2 --save-dev
    
    

    webpack启动工程

    webpack核心-- 一个.js的配置文件,这个配置决定了:架构好坏

    //在之前的目录下 (webpackStudy目录)新建一个js文件
    
    touch webpack.config.js
    // 打开此文件
    open webpack.config.js
    // 初始化
    // 由于目前没有安装支持ES6的编译插件,暂时不能使用
    'export default config';
    // webpack.config.js文件内容如下
    var config = {
    
    }
    
    module.exports = config
    

    向package.json 中的scripts中添加快速启动webpack-dev-server服务的脚本
    (包括打开的局域网ip(不输入则是默认的本地),打开的端口号(默认8080))

    "dev": "webpack-dev-server --host xxx.xxx.xxx.xxx --port 8888 --open --config webpack.config.js"
    

    webpack重要配置 之 入口(Entry) 和 出口(Output)

    入口: 告诉webpack从哪里开始寻找依赖,并且编译
    出口: 用来配置编译后的文件存储位置和文件名字

    新建入口文件 main.js
    webpack会从main.js文件开始工作

    touch main.js
    

    并且在webpack.config.js中进行入口和出口配置

    // webpack.config.js
    var path = require('path')
    
    var config = {
        entry: {
            main: './main'
        },
        // 打包文件存储为 webpackStudy/dist/main.js
        output: {
            //path 用来存放打包文件的输出目录
            path: path.join(__dirname, './dist'),
            // publicPath 资源文件的引用目录
            // 如果资源存放在CDN上,这里可以填写CDN的网址
            publicpath: '/dist/',
            //filename 指定输出文件的名称
            filename: 'main.js'
        }
    }
    
    module.exports = config
    

    新建一个index.html 作为SPA入口

    touch index.html
    
    //index.html 内容
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>webpack study</title>
    </head>
    <body>
        <div id="app">
            Hello World
        </div>
        <script type="text/javascript" src="/dist/main.js"></script>
    </body>
    </html>
    
    

    现在可以去终端执行

    yarn run dev 
    或者
    npm run dev
    

    SPA

    由一个html文件和一堆按需加载的js组成

  • 相关阅读:
    计算机网络协议如何学习之换位思考
    tcp/ip协议
    JSP页面中的元素
    动态网页脚本语言
    php的学习经验
    jsp、php和asp之间的区别
    Reactor 线程模型
    Hadoop集群搭建
    hadoop单点配置
    Docker 安装脚本
  • 原文地址:https://www.cnblogs.com/lmx093418/p/9990432.html
Copyright © 2020-2023  润新知