国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

還不打算去認(rèn)識(shí)一下webpack?

Tony_Zby / 581人閱讀

摘要:前言隨我來去看看為時(shí)未晚第一版較淺顯的知識(shí)懂得可忽略本文方向安裝起步搭建運(yùn)行粗略代過對(duì)于資源的管理對(duì)于輸出的管理舉例介紹本地開發(fā)基礎(chǔ)服務(wù)熱更新模塊熱替換初步認(rèn)識(shí)初步構(gòu)建新建一個(gè)文件并進(jìn)入更目錄是命令初始一個(gè)文件表示跳過詢問步驟安裝

前言
隨我來,去看看webpack!(為時(shí)未晚)============》第一版(較淺顯的知識(shí),懂得可忽略本文)
方向

安裝,起步搭建運(yùn)行. (粗略代過)

對(duì)于資源的管理,對(duì)于輸出的管理. (舉例介紹)

本地開發(fā) (基礎(chǔ)服務(wù))

熱更新=[模塊熱替換] (初步認(rèn)識(shí))

1.初步構(gòu)建
mkdir webpack_demo && cd webpack_demo   // 新建一個(gè)文件 并進(jìn)入更目錄 `mkdir 是linux命令`
npm init -y   // 初始一個(gè)packjage.json文件  -y 表示跳過詢問步驟...


//安裝webpack
npm install webpack --save-dev  // 添加webpack-cli依賴到"devDependencies"
//webpack4.0+ 需要安裝webpack-cli
 npm install webpack-cli --save-dev  // 添加webpack-cli依賴到"devDependencies"  
 
//生成如下目錄
├── package.json                                       
├── src                                       //源目錄(輸入目錄)
│?? ├── index.js                                    
├── dist                                         // 輸出目錄
│?? ├── index.html                              

// 修改 `dist/index.html`
< !DOCTYPE html>

    
        
        webpack_demo
    
    
               //為什么是main.js下面會(huì)解釋
    


//修改`src/index.js    `
 function component() {
   var element = document.createElement("div");
     element.innerHTML = "整一個(gè)盒子"
     return element;
  }

  document.body.appendChild(component());
 npx webpack (Node 8.2+ 版本提供的 npx 命令) 
node node_modules/.bin/webpack (8.2-版本)
會(huì)將我們的腳本作為入口起點(diǎn),然后 輸出 為 main.js.
打開dist/index.html  你將會(huì)看到 整一個(gè)盒子 幾個(gè)字樣~
2.資源管理,輸出管理.基本開發(fā)起步
//生成如下目錄
  ├── package.json 
+ |── webpack.config.js                          //webpack配置文件                                     
  ├── src                                        //源目錄(輸入目錄)
  │?? ├── index.js                                    
  ├── dist                                       // 輸出目錄
  │?? ├── index.html                              
先介紹一個(gè)Lodash庫  它是一個(gè)一致性、模塊化、高性能的 JavaScript 實(shí)用工具庫 模塊化處理非常適合值操作和檢測(說白了就是webpack用了我也試試...) 
lodash相關(guān)文檔

npm install lodash --save //非僅在開發(fā)的時(shí)候使用的依賴 就是需要打包到生產(chǎn)環(huán)境的包 不加-dev

// src/index.js
import _ from "lodash";

function component() {
   var element = document.createElement("div");
     element.innerHTML = _.join(["lodash","webpack"],"");   //join將 array 中的所有元素轉(zhuǎn)換為由""分隔的字符串 其它函數(shù)可以自己實(shí)踐
     return element;
 }
打開index頁面輸出 loadshwebpack
//webpack.config.js
 const path = require("path");
 
 module.exports = {
      entry: "./src/index.js",   //入口
      output: {  //出口
        filename: "main.js", //打包之后腳本文件名稱
        path: path.resolve(__dirname, "dist")  //路徑指向執(zhí)行 js 文件的絕對(duì)路徑 此處為/dist
      }
 };
執(zhí)行npx webpack --config webpack.config.js    (把之前dist目錄下main.js刪除)  新的腳本生成(其實(shí)沒多大變化..)
//  配置一下package.json
  "scripts": {
    "test": "echo "Error: no test specified" && exit 1",
    "build": "webpack"     //添加此行命令 下次執(zhí)行打包就是 npm  run  build 相當(dāng)于上面的npx webpack --config webpack.config.js
  },

// 資源的配置 css 圖片 js等等.. 舉例 css 圖片
npm install --save-dev style-loader css-loader   css的loader
npm install --save-dev file-loader file(圖片)對(duì)象的 loader
 //生成如下目錄
   ├── package.json 
 + |── webpack.config.js                          //webpack配置文件                                     
   ├── src                                        //源目錄(輸入目錄)
   │?? ├── index.js   
 + │?? ├── index.css 
 + │?? ├── icon.jpg                                
   ├── dist                                       // 輸出目錄
   │?? ├── index.html                              
//修改webpack.config.js
    const path = require("path");  //path路徑模塊
    module.exports = {
      entry: "./src/index.js",   //入口
      output: {   //出口
        filename: "main.js",
        path: path.resolve(__dirname, "dist")
      },
      module: {
         rules: [
           {
             test: /.css$/,  //檢測正則匹配.css結(jié)尾的文件
             use: [           //使用倆個(gè)loader
               "style-loader", 
               "css-loader"
             ]
           },
           {
             test: /.(png|svg|jpg|gif)$/,  //正則匹配.png svg jpg gif結(jié)尾的文件
             use: [    //使用file-loader
               "file-loader"
             ]
           }
         ]
       }
    };
 //修改src/index.css
    div{
        color:red;
    }

 //修改src/index.js
     import _ from "lodash";
     import "./index.css";
     import Icon from "./icon.jpg";
    
    
      function component() {
        var element = document.createElement("div");
    
        element.innerHTML = _.join(["loadsh", "webpack"], " ");
        var myIcon = new Image();
        myIcon.src = Icon;
    
        element.appendChild(myIcon);
        return element;
      }
    
      document.body.appendChild(component());
npm run build(刪除之前的dist目錄下main.js)  你會(huì)看紅字和圖片  以上就是資源管理的簡短介紹
npm install --save-dev html-webpack-plugin   安裝html-webpack-plugin模塊 模塊用到功能:
1: 動(dòng)態(tài)添加每次compile后 js css 的hash
2: 可配置多頁面 單頁面 這些
3: 其它沒涉及到
npm install clean-webpack-plugin --save-dev 清除dist文件夾(每次刪除麻煩了..)配置一下
//修改目錄
  ├── package.json 
  |── webpack.config.js                          //webpack配置文件                                     
  ├── src                                        //源目錄(輸入目錄)
 +  │?? ├── app.js
 +  │?? ├── print.js
  │?? ├── index.css 
  │?? ├── icon.jpg                                   
  ├── dist                                       // 輸出目錄
  │?? ├── index.html                              
//webpack.config.js  ===============================================
const path = require("path");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const CleanWebpackPlugin = require("clean-webpack-plugin");

module.exports = {
  entry: {
    app: "./src/index.js",
    print: "./src/print.js"
  },
  output: {
    filename: "[name].bundle.js",
    path: path.resolve(__dirname, "dist")
  },
  plugins: [
       new CleanWebpackPlugin(["dist"]),
     new HtmlWebpackPlugin({
       title: "webpack_demo"
     })
  ],
  module: {
     rules: [
       {
         test: /.css$/,
         use: [
           "style-loader",
           "css-loader"
         ]
       },
       {
         test: /.(png|svg|jpg|gif)$/,
         use: [
           "file-loader"
         ]
       }
     ]
   }
};

//修改src/index.js ===================================================
 import _ from "lodash";   //引入lodash模塊
 import "./index.css";     // index.css
 import Icon from "./icon.jpg";   // 圖片
 import printMe from "./print.js"    // printJS


  function component() {
    var element = document.createElement("div");  //創(chuàng)建一個(gè)元素

    element.innerHTML = _.join(["loadsh", "webpack"], " ");  // lodash中_.join方法
    var myIcon = new Image(); //創(chuàng)建一個(gè)圖片
    myIcon.src = Icon;    //src賦值

    element.appendChild(myIcon);   //追加圖片

    var btn = document.createElement("button");  //創(chuàng)建按鈕
    btn.innerHTML = "Click me and check the console!";   //內(nèi)容賦值
    btn.onclick = printMe;   //添加事件
    element.appendChild(btn);   //追加元素

    return element;
  }

  document.body.appendChild(component());   //追加元素到body中
  
  //修改src/print.js  ==========================================
  export default function printMe() {
      console.log("from print.js");
  }
  
npm run build 會(huì)發(fā)現(xiàn)基本webpack的配置之后 ,有點(diǎn)模樣(意思)了  打開頁面index.html正常訪問
3.本地開發(fā)
npm install --save-dev webpack-dev-server     "webpack-dev-server" 為你提供了一個(gè)簡單的 web 服務(wù)器,并且能夠?qū)崟r(shí)重新加載
 //修改webpack.config.js
const path = require("path");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const CleanWebpackPlugin = require("clean-webpack-plugin");
const webpack = require("webpack");

module.exports = {
  entry: {
    app: "./src/index.js"
  },
  output: {
    filename: "[name].bundle.js",
    path: path.resolve(__dirname, "dist")
  },
  devServer: {
     contentBase: "./dist"
  },
  plugins: [
       new CleanWebpackPlugin(["dist"]),
     new HtmlWebpackPlugin({
       title: "webpack_demo"
     })
  ],
  module: {
     rules: [
       {
         test: /.css$/,
         use: [
           "style-loader",
           "css-loader"
         ]
       },
       {
         test: /.(png|svg|jpg|gif)$/,
         use: [
           "file-loader"
         ]
       }
     ]
   }
};
//修改package.json
...
"scripts": {
    "test": "echo "Error: no test specified" && exit 1",
    "start": "webpack-dev-server --open", //start命令
    "build": "webpack"
 },
 ...
 
npm run start 本地起了8080端口的服務(wù),你也可以看到自己的頁面
4.熱更新
//修改webpack.config.js
const path = require("path");
const HtmlWebpackPlugin = require("html-webpack-plugin");
const CleanWebpackPlugin = require("clean-webpack-plugin");
const webpack = require("webpack");

module.exports = {
  entry: {
    app: "./src/index.js"
  },
  output: {
    filename: "[name].bundle.js",
    path: path.resolve(__dirname, "dist")
  },
  devServer: {
     contentBase: "./dist",
     hot: true
  },
  plugins: [
       new CleanWebpackPlugin(["dist"]),
     new HtmlWebpackPlugin({
       title: "webpack_demo"
     }),
     new webpack.NamedModulesPlugin(),
     new webpack.HotModuleReplacementPlugin()
  ],
  module: {
     rules: [
       {
         test: /.css$/,
         use: [
           "style-loader",
           "css-loader"
         ]
       },
       {
         test: /.(png|svg|jpg|gif)$/,
         use: [
           "file-loader"
         ]
       }
     ]
   }
};
 
npm run start 運(yùn)行http://localhost:8080/  然后你去修改print js的console(或者添加其他代碼) 會(huì)發(fā)現(xiàn)命令行輸出updated. Recompiling... 字樣 這就是簡單的實(shí)現(xiàn)了熱更新
最后

本文只是大概從幾個(gè)demo來對(duì)于webpack的基礎(chǔ)概念 入口entry 出口 output loader plugins mode(沒有直面涉及)幾大模塊的梳理于實(shí)踐,讓大家對(duì)于webpack不在那么陌生!

后續(xù)文章會(huì)從更深入的角度去學(xué)習(xí)webpack! 暫定下周1 發(fā)表文章(內(nèi)容 詳細(xì)介紹hot 實(shí)現(xiàn)一個(gè)簡易的vue-cli等等)

demo的代碼我會(huì)同步github
ps:
第二版 : webpack構(gòu)建一個(gè)簡易的my-vue-cli

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/99045.html

相關(guān)文章

  • 我他喵的到底要怎樣才能在生產(chǎn)環(huán)境中用上 ES6 模塊化?

    摘要:因此,你還是需要各種各樣雜七雜八的工具來轉(zhuǎn)換你的代碼噢,我可去你媽的吧,這些東西都是干嘛的我就是想用個(gè)模塊化,我到底該用啥子本文正旨在列出幾種可用的在生產(chǎn)環(huán)境中放心使用模塊化的方法,希望能幫到諸位后來者這方面的中文資源實(shí)在是忒少了。 原文發(fā)表在我的博客上。最近搗鼓了一下 ES6 的模塊化,分享一些經(jīng)驗(yàn) :) Python3 已經(jīng)發(fā)布了九年了,Python 社區(qū)卻還在用 Python 2...

    KaltZK 評(píng)論0 收藏0
  • webpack的學(xué)習(xí)之路~~第一天

    摘要:第節(jié)認(rèn)識(shí)的作用學(xué)習(xí)的一原因現(xiàn)在的前端網(wǎng)頁功能豐富,特別是單頁應(yīng)用技術(shù)流行后,的復(fù)雜度增加和需要一大堆依賴包,還需要解決,新增樣式的擴(kuò)展寫法的編譯工作。在出現(xiàn)后,還肩負(fù)起了優(yōu)化項(xiàng)目的責(zé)任。其實(shí)就是獲取了項(xiàng)目的絕對(duì)路徑。 第01節(jié):認(rèn)識(shí)WebPack的作用: 學(xué)習(xí)的一原因: 現(xiàn)在的前端網(wǎng)頁功能豐富,特別是SPA(single page web application 單頁應(yīng)用)技術(shù)流行后,...

    blankyao 評(píng)論0 收藏0
  • 寫給初入門/半路出家的前端er

    摘要:半路出家的前端程序員應(yīng)該不在少數(shù),我也是其中之一。年,馮馮同事兼師兄看我寫太費(fèi)勁,跟我說對(duì)面樓在找,問我要不要學(xué),說出來可能有點(diǎn)丟人,但是在那之前,我真得不知道什么是,什么是。 半路出家的前端程序員應(yīng)該不在少數(shù),我也是其中之一。 為何會(huì)走向前端 非計(jì)算機(jī)專業(yè)的我,畢業(yè)之后,就職于一家電力行業(yè)公司,做過設(shè)備調(diào)試、部門助理、測試,也寫過一段時(shí)間的QT,那三年的時(shí)間,最難過的不是工作忙不忙,...

    Cc_2011 評(píng)論0 收藏0
  • 作為前端開發(fā)者,你還不知道什么是 postCss?

    摘要:的定位屬于預(yù)處理器嗎還是屬于后置處理器都不是,因?yàn)榫唧w做的事取決于開發(fā)者使用了什么插件。這里做一個(gè)我覺得比較恰當(dāng)?shù)念惐龋械南喈?dāng)于的中的,,等預(yù)處理器相當(dāng)于,雖然不是完全合理,但是還是比較恰當(dāng)。 前言 原諒我取這樣的標(biāo)題,我知道 postCss 對(duì)于大多數(shù)前端開發(fā)者來說早已經(jīng)很熟悉了,但是樓主作為一個(gè)初出茅廬的前端er,還有好多的工具和技術(shù)沒接觸過,說來慚愧。雖然平時(shí)也喜歡使用css預(yù)...

    appetizerio 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<