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

  • 相关阅读:
    iOS键盘监听事件
    JDBC中的Statement和PreparedStatement的区别 分类: JavaWeb 2014-05-18 13:46 5255人阅读 评论(2) 收藏
    Android中的隐藏API和Internal包的使用之获取应用电量排行 分类: Android 2014-05-16 17:55 3874人阅读 评论(4) 收藏
    Android中怎么破解游戏之修改金币数 分类: Android 2014-05-14 18:27 4802人阅读 评论(8) 收藏
    Android中通过反射来设置Toast的显示时间 分类: Android 2014-05-11 13:14 3291人阅读 评论(4) 收藏
    MySql中的变量定义 分类: Java 2014-05-04 10:41 6507人阅读 评论(0) 收藏
    MySql中创建存储过程 分类: Java 2014-05-04 10:31 4711人阅读 评论(1) 收藏
    MySQL数据库事务隔离级别(Transaction Isolation Level) 2014-05-04 09:52 4407人阅读 评论(0) 收藏
    C++中的static关键字 分类: Android 2014-04-22 13:45 448人阅读 评论(0) 收藏
    Android实现通过浏览器点击链接打开本地应用(APP)并拿到浏览器传递的数据 分类: Android 2014-04-17 16:15 11412人阅读 评论(18) 收藏
  • 原文地址:https://www.cnblogs.com/echoyya/p/13596730.html
Copyright © 2011-2022 走看看