webpack學習筆記

来源:http://www.cnblogs.com/hsianglee/archive/2017/11/04/7781799.html
-Advertisement-
Play Games

1. 全局安裝webpack cnpm install --save-dev webpack 2. 初始化 cnpm init cnpm install --save-dev webpack 創建項目目錄( dist為生成目錄 ) 3. 配置文件 webpack.config.js 創建main.j ...


1. 全局安裝webpack

cnpm install --save-dev webpack

2. 初始化

cnpm init

cnpm install --save-dev webpack

創建項目目錄( dist為生成目錄 )

3. 配置文件 webpack.config.js

module.exports={
    entry: __dirname+"/src/main.js",
    output: {
        path: __dirname+"/dist",
        filename: "bundle.js"
    }
}

創建main.js文件

index.html 文件引入 

<script src="dist/bundle.js"></script>

 

執行命令 webpack 即可生成list/bundle.js

4. babel配置

cnpm install --save-dev babel-core babel-loader babel-preset-es2015 babel-preset-react

webpack.config.js添加代碼:

module: {
    rules: [
        {
            test: /(\.jsx|\.js)$/,
            use: {
                loader: "babel-loader",
                options: {
                    presets: ["es2015","react"]
                }
            },
            exclude: /node-modules/
        },
    ]
},

測試: 

src/js/a.js 代碼: 

var obj={
    a: 3,
    b: 2,
    add() {
        return this.a+this.b;
    }
}
export default obj;

main.js 引用: 

import obj from "./js/a";
console.log(obj.add());

執行 webpack ,啟動瀏覽器查看

5. 構建伺服器

cnpm install --save-dev webpack-dev-server

配置: 

devServer: {
    historyApiFallback: true,    //不跳轉
    inline: true                 //實時刷新
}

package.json中的 scripts 添加:

"start": "webpack",
"server": "webpack-dev-server --open"

執行 npm start 生成bundle.js
執行 npm run server 啟動伺服器

修改index.html 文件引入路徑

<!-- bundle.js在虛擬記憶體中,可以實時刷新 -->
<!-- dist/bundle.js是打包後才刷新 -->
<script src="bundle.js"></script>

6. css 

cnpm install --save-dev style-loader css-loader

配置: 

{
    test: /\.css$/,
    use: [
        {
            loader: "style-loader"
        },
        {
            loader: "css-loader"
        }
    ]
},

src/css/style.css 代碼: 

html,body{
    width: 100%;
    height: 100%;
    padding: 0;
    margin: 0;
    background-color: #ddd;
}

main.js 引入:

import "./css/style.css";

7. sass

cnpm install --save-dev sass-loader

cnpm install node-sass

配置: 

{
    test: /\.scss$/,
    loader: 'style-loader!css-loader!sass-loader'
},

src/scss/base.scss 代碼: 

body{
    div{
        width: 200px;
        height: 200px;
        border: 1px solid #f69;
        margin: 20px auto;
        background: url("../images/1.png");
        &:hover{
            box-shadow: 0px 0px 5px 6px #aaa;
        }
    }
}

 

main.js 引入:

import "./scss/base.scss";

8. image

cnpm install --save-dev url-loader

配置: 

{
    test: /(\.png|\.jpg)$/,
    loader: "url-loader?limit=8192"
},

a: js 中的圖片引入

var imgUrl=require("./images/1.png");

b: html 中的圖片 

<img src="./src/images/1.png" alt="">

c: css中的圖片

background: url("../images/1.png");

 配置彙總:

module.exports={
    entry: __dirname+"/src/main.js",
    output: {
        path: __dirname+"/dist",
        filename: "bundle.js"
    },
    module: {
        rules: [
            {
                test: /\.js$/,
                use: {
                    loader: "babel-loader",
                    options: {
                        presets: ["es2015"]
                    }
                },
                exclude: /node-modules/
            },
            {
                test: /\.css$/,
                use: [
                    {loader: "style-loader"},{loader: "css-loader"}
                ]
            },
            {
                test: /\.scss$/,
                loader: 'style-loader!css-loader!sass-loader'
            },
            {
          test: /\.(png|jpg)$/,
          loader: 'url-loader?limit=8192'
        }
        ]
    },
    devServer: {
        historyApiFallback: true,//不跳轉
        inline: true//實時刷新
    },
}

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一個項目可以按照功能劃分區域,例如前臺和後臺 右擊MVC項目->添加區域 生成一個Area文件夾,優先載入分區項目的路由 ...
  • 圖片以二進位存儲於資料庫表中。在顯示RDLC報表時,把圖片呈現出來。好吧。把存儲過程寫好: CREATE PROCEDURE [dbo].[usp_File_Select] AS SELECT [Afd_nbr],[Picture],[PictureType],[FileExtension] FRO ...
  • 描述 本篇文章簡要推薦一些常用技術博客網站 1 內容區 1 內容區 2 版權區 2 版權區 感謝您的閱讀,若有不足之處,歡迎指教,共同學習、共同進步。 博主網址:http://www.cnblogs.com/wangjiming/。 極少部分文章利用讀書、參考、引用、抄襲、複製和粘貼等多種方式整合而 ...
  • 經常遇到C#調用webservice的情況,通常來說如果webservice是用vs+c#來開發的,問題一般來說不大,直接web引用,然後調用就OK了。流程如下: 下麵就是進行調用,就這麼簡單。 但如果webservice是用JAVA或者其它語言或者其它工具生成的話,使用vs+c#來調用就經常遇到問 ...
  • 要在select標簽上面加上autocomplete="off"關閉自動完成,不然瀏覽器每次刷新後將自動選擇上一次關閉時的option,這樣預設屬性selected="selected"就會失效啦 要記住每次遇到select標簽時就最好要加上autocomplete="off"這一項 ...
  • 瞭解瞭解 ECharts,縮寫來自Enterprise Charts,商業級數據圖表,一個純Javascript的圖表庫,可以流暢的運行在PC和移動設備上,相容當前絕大部分瀏覽器(IE6/7/8/9/10/11,chrome,firefox,Safari等),底層依賴輕量級的Canvas類庫ZRen ...
  • 瞧這首頁報錯報的 ...
  • 簡介 form的enctype屬性為編碼方式,常用有兩種:application/x-www-form-urlencoded和multipart/form-data,預設為application/x-www-form-urlencoded。 當action為get時候,瀏覽器用x-www-form- ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...