zoukankan      html  css  js  c++  java
  • Webpack入门

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

    模块打包机:分析项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(less,Scss,TypeScript等),并将其转换和打包为合适的格式供浏览器使用。可以使复杂的程序细化成为各个小的文件,为了简化开发的复杂度

    二、weback使用流程

    1、创建项目

    mkdir webpackDemo // 创建项目
    cd webpackDemo // 进入项目
    mkdir app // 在项目中创建app文件
    mkdir common // 在项目中创建common文件
    cd app // 进入app文件夹
    echo test>app.js // 创建app.js文件
    echo test>main.js // 创建main.js文件
    cd .. //返回到webpackDemo项目根目录
    cd common // 进入common文件
    echo test>index.html // 创建index.html文件
    
    • app:用来存放原始数据和JavaScript模块
    • common:用来存放之后供浏览器读取的文件(包括使用webpack打包生成的js文件以及一个index.html文件)

    基础代码

    index.html是入口文件,并导入打包后的文件

    <!doctype html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Document</title>
    </head>
    <body>
        <div id="root"></div>
        <script type="text/javascript" src="index.js"></script>
    </body>
    </html>
    

    app.js 是业务模块,并依据CommonJS规范导出这个模块

    module.exports = function() {
      var greet = document.createElement('div');
      greet.textContent = "welcome to use webpack!";
      return greet;
    }
    

    main.js其实是一个组件,目的是将模块返回并插入到页面中

    const greeter = require('./app.js');
    document.querySelector("#root").appendChild(greeter());
    

    2. 安装配置

    安装webpack需要使用npm,因此首先要安装node,此处不再赘述,可自行安装 node安装地址

    • 声明一下我使用的环境
      - npm -v : v6.14.4
      - node -v : v12.16.3

    1.调用 npm init 来初始化 package.json,参数 -y 表示对 npm 要求提供的信息,都自动按下回车键,表示接受默认值。

    npm init -y 
    

    2.安装 webpack 默认最新版,若不想安装最新版,输入webpack@版本号即可,webpack有两个版本:webpack2webpack4,两个版本安装配置有差异。

    // webpack2
    npm install webpack@3.5 --save-dev // 项目内安装 (-g 全局安装)
    // webpack4 需要去额外安装webpack-cli
    npm install webpack  webpack-cli --save-dev // 项目内安装  (-g 全局安装)
    

    3.Webpack打包 — 本人操作时使用全局安装,望注意~

    // webpack2 
    webpack app/main.js common/index.js  // (webpack全局情况下)
    node_modules/.bin/webpack app/main.js common/index.js  //  (webpack非全局安装需使用)
    
    // webpack4 
    webpack app/main.js -o  common/index.js // (webpack全局情况下)
    node_modules/.bin/webpack app/main.js -o common/index.js  //  (webpack非全局安装需使用)
    
    • app/main.js:是入口文件路径
    • common/index.js:打包文件的存放路径

    报错及异常处理

    (1)、webpack : 无法将“webpack”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括所在位置 行:1 字符: 1

    原因并解决:导致这个问题的原因,我目前还不是很清楚,有了解的童鞋,可以留言相互探讨一下,目前我使用的办法是找到项目根目录下的package.json文件,添加一个命令

    • npm run dev
    "scripts": {
        "dev": "webpack app/main.js -o common/index.js ",
      },
    

    (2)、Insufficient number of arguments or no entry found. Alternatively, run 'webpack(-cli) --help' for usage info.

    原因并解决: webpack4 需要去额外安装webpack-cli,未安装是会提示该报错

    npm install webpack-cli --save-dev
    

    (3)、ERROR in Entry module not found: Error: Can't resolve './src' in 'C:UsersLenovoDesktopwebpackDemo'

    原因并解决:输入命令 npm run dev1 时,会默认去查找项目根目录下的src/index.js,试图将其打包,输出路径为dist/main.js的文件,手动创建src/index.js,再次输入命令 npm run dev1,会生成dist/main.js文件,并将main.js引入common/index.html即可

    (4)、WARNING in configuration

    原因并解决:webpack4是需要指定打包为开发环境(development)还是生产环境的(production),未指定会有这个警告

    • npm run dev
    • npm run build
    // development: 不对打包后的文件进行压缩,有换行,有缩进,可阅读性好
    // production: 打包后的文件自动压缩  
    "scripts": {
        "dev": "webpack app/main.js -o common/index.js --mode development",
        "build": "webpack app/main.js -o common/index.js --mode production"
      },
    

    三、打包成功

    那么此时,可以打开浏览器,访问common/index.html

  • 相关阅读:
    windows7 下 apache2.4 和 php5.5 及 mysql5.6 的安装与配置
    JavaScript高级编程 (1)
    关于解决乱码问题的一点探索之二(涉及Unicode(utf-16)和GBK)
    关于解决乱码问题的一点探索之一(涉及utf-8和GBK)
    Windows上安装、配置MySQL的常见问题
    解析DXF图形文件格式
    vue三十一:vue配置反向代理
    vue三十:eslint修复错误和打包用于生产
    vue二十九:多个文件组件集成
    vue二十八:Vue-Cli之环境搭建之node安装脚手架和使用脚手架创建vue项目
  • 原文地址:https://www.cnblogs.com/echoyya/p/13596730.html
Copyright © 2011-2022 走看看