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
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...