zoukankan      html  css  js  c++  java
  • webpack的使用

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

     

      安装

      首先应该确认电脑装好了node,然后使用npm全局安装。在终端里输入(-g 表示全局安装): 

    npm install webpack -g
    

      在windows下这些操作都是没问题的,但是在mac下可能出现问题。

      原因分析:在mac下依赖包要写入系统重要文件夹里,由于没有先获取root权限所以写入失败,导致安装失败。

    mac 还有一步操作就是,终端先执行如下命令

    $ sudo -s
    

      执行后会出现小钥匙,你输入什么都不会显示出来,直接输入你的开机密码然后在回车就可以了。

    获取完root  在去安装webpack 就可以了。

      等待安装,终端上输入webpack -v 如果显示webpack版本说明安装成功。 

      正式使用Webpack前的准备

      新建一个webpack-text的项目。

      使用npm init命令可以自动创建这个package.json文件。在终端中输入

    npm init
    

      按照终端返回的提示填入项目名称,项目描述,作者等信息。会在项目中看到package.json。

      正式使用webpack  

       单个js文件打包

      新建一个show.js和一个index.html

      show.js

    //单个js文件打包
    document.write("123")

      index.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="dist/bundle.js"></script>
    </head>
    <body>
    </body>
    </html>
    

      在终端输入(其中show.js是入口文件,bundle.js是出口文件)

    webpack show.js bundle.js
    

      执行后就可以看到生成了bundle.js, 说明打包成功。

      多个js文件打包(把str暴露的东西接收到)

      新建一个新的str.js文件,把需要暴露的内容通过module.exports暴露出去,可以暴露的内容有字符串,json对象,函数

    // 把内容暴露出去
    // module.exports = "明天天气会很好~"
    //传递json对象
    // var json = {
    //     str:"123"
    // };
    // module.exports = json;
    
    //传递函数
    function fn(value){
        return value;
    }
    module.exports = fn;
    

      再通过show.js接收暴露出来的内容

    //多个js文件打包(把str暴露的东西接收到)
    // document.write(require("./str.js"))
    
    //接收json对象
    // var json = require("./str.js");
    // document.write(json.str)
    
    //接收函数
    var fnstr = require("./str.js");
    document.write(fnstr("<div>234</div>"));

      在终端输入(其中show.js是入口文件,bundle.js是出口文件)

    webpack show.js bundle.js
    

      打包样式文件  

      过安装loader加载器,可以将静态的样式文件一并打包到bundle.js文件。通过一下命令安装加载器。

    sodu npm install css-loader style-loader
    

      等待安装成功后,会发现该项目多了个node-modules文件,打开package.json文件,会发现多了dependencies信息。

      新建一个style.css文件

    div{
        background: red;
        color:#fff;
        text-align: center;
    }
    

      在入口文件show.js加载style.css,在show.js中加入(注意:一定要先加载style-loader,再加载进css-loader);

    //把静态css引进来
    require("!style-loader!css-loader!../css/style.css")
    

      在终端运行

    webpack show.js bundle.js
    

      通过配置文件打包

        在手动编译时,可以将一些经常性的操作,添加到配置文件,减少编译过程中,手写代码的数量,构建自动工具。

      在项目下新建一个配置文件webpack.config.js。在配置文件上写上配置项。

      项目目录如下:

      

      配置项

       

      在终端运行

    webpack
    

      另一种编译方法

      在package.json里面的 scripts里面输入

    "build": "webpack"
    

      在终端运行(相当于上面运行webpack)

    npm run build

      安装第三方库

      以安装jquery为例

      在终端运行(--save-dev保存在package.json)

    sudo npm install jquery --save-dev
    

      安装成功后,会在packjson.json里面看到

      

      在入口文件 show.js引入

    var $ = require("jquery")
    

      通过打包工具将项目部署到服务端

      通过安装   

      在终端运行webpack-dev-server模块,可以将项目打包到服务器,并可以指定端口,同时还可以配置启动命令。

    sudo npm webpack-dev-server --save-dev
    

      安装后,可以在package.json看到

      

      在package.json的scripts里面配置start

    "start": "webpack-dev-server --entry ./src/js/show.js --output-filename ./dist/bundle.js",
       启动服务器,在终端先编辑一下
     npm run build
       然后启动服务器(默认端口为8080)
    npm start
       如果要修改端口,是在配置文件webpack.config.js里面配置devServer

      

      具体看下图(package.json文件的配置)

      
    实现文件打包的自动检测
    在配置服务端后,在build中加上watch监听
    "build": "webpack --watch",
    
      可以实现自动检测。 
  • 相关阅读:
    外校培训前三节课知识集合纲要(我才不会告诉你我前两节只是单纯的忘了)
    floyd算法----牛栏
    bfs开始--马的遍历
    (DP 线性DP 递推) leetcode 64. Minimum Path Sum
    (DP 线性DP 递推) leetcode 63. Unique Paths II
    (DP 线性DP 递推) leetcode 62. Unique Paths
    (DP 背包) leetcode 198. House Robber
    (贪心 复习) leetcode 1007. Minimum Domino Rotations For Equal Row
    (贪心) leetcode 452. Minimum Number of Arrows to Burst Balloons
    (字符串 栈) leetcode 921. Minimum Add to Make Parentheses Valid
  • 原文地址:https://www.cnblogs.com/wxw1314/p/8150120.html
Copyright © 2011-2022 走看看