webpack學習筆記一(入門)

来源:http://www.cnblogs.com/lmh2072005/archive/2016/06/10/5573227.html
-Advertisement-
Play Games

webpack集成了模塊載入和打包等功能 ,這兩年在前端圈越來越手歡迎。平時一般是用requirejs、seajs作為模塊載入用,用grunt/gulp作為前端構建。webpack作為模塊化載入相容了amd/cmd模式,並且作為模塊化的資源可以是js/css/image coffeescript/s ...


webpack集成了模塊載入和打包等功能 ,這兩年在前端圈越來越手歡迎。平時一般是用requirejs、seajs作為模塊載入用,用grunt/gulp作為前端構建。webpack作為模塊化載入相容了amd/cmd模式,並且作為模塊化的資源可以是js/css/image  coffeescript/sass/less  ES2015 modles TypeScript 等功能非常強大,作為前端構建工具還可以和grunt/gulp配合一起使用。 配置文件webpack.config.js也是非常清晰。

一. 安裝webpack 

npm install webpack -g 全局安裝,這個時候可能會報錯:npm warn optional dep failed...等錯誤, 可能是nodejs版本太低了 ,nodejs.org下載最新安裝包即可 。

二. 命令行介面

1. 創建2個js文件

cats.js

var cats = ['dave', 'henry', 'martha'];
module.exports = cats;

app.js (主文件)

cats = require('./cats.js');
console.log(cats);

在命令行輸出 :

webpack ./app.js app.bundle.js

將會生成合併壓縮後的 app.bundle.js文件 。 可以直接當做nodejs模塊執行: node  app.bundle.js 看效果。

三. 使用配置文件

在項目根目錄下 npm init 創建package.json文件 。這時會提示輸入package相關信息。

npm install webpack --save-dev  下載webpack模塊並且將webpack加入package開發依賴(這樣其他合作開發者就可以直接npm install啦)。

在項目根目錄新建webpack.config.js 裡面就是webpack的相關配置信息了 。

const webpack = require('webpack');  //載入webpack模塊
module.exports = {
    entry: './src/app.js',  //主入口文件
    output: {
        path: './bin',    //輸出文件目錄
        filename: 'app.bundle.js'   //輸出文件名
    },
    plugins: [
        new webpack.optimize.UglifyJsPlugin({  //使用uglifyjs插件
            compress: {
                warnings: false
            },
            output: {
                comments: false
            }
        })
    ]
};

webpack自帶了uglifyjs插件以及js loader,所以不需要自己添加額外的插件。

進入到項目根目錄在命令行直接運行webpack就行了。會看到在bin目錄多了個app.bundle.js文件。

目錄結構:

|--src

|--bin

|--node-modules

|--webpack.config.js

對於文件夾的命名,webpack官網是這樣說的:

In the wild, there are many project structures. Some projects use app instead of src. Some projects use dist or build instead of bin. Projects with test usually use test, tests, spec, specs or colocate the test files in the source folder.

當需要載入其他特殊資源時需要下載相關的載入模塊,比如:babel-loader 載入es2015 ( ECMAScript 6 簡稱ES6 , JavaScript語言的新標準。當前版本的ES6是在2015年發佈的,所以又稱ECMAScript 2015 ) ,如果要相容舊版瀏覽器還需要下載babel-polyfill, 這樣就可以愉快的使用es6了。

 參考文檔:

https://github.com/petehunt/webpack-howto

http://webpack.github.io/docs/usage.html

http://www.cnblogs.com/vajoy/p/4650467.html

 


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

-Advertisement-
Play Games
更多相關文章
  • 1. 如何創建嵌套的過濾器 //允許你減少集合中的匹配元素的過濾器, //只剩下那些與給定的選擇器匹配的部分。在這種情況下, //查詢刪除了任何沒(:not)有(:has) //包含class為“selected”(.selected)的子節點。 .filter(":not(:has(.select ...
  • 前段時間寫過一篇 "CSS基礎知識之position" ,當時對float的理解不太準確,被慕課網多名讀者指出(原文已修正,如有誤導實在抱歉)。現對float進行更深入的學習,在此把學習心得分享給大家。 浮動的基礎知識 浮動有4個屬性:left(左浮動)、right(右浮動)、none(不浮動)、i ...
  • ...
  • ...
  • 一、JSONP 常用的Jquery框架支持jsonp方式請求,該方式只支持GET方法,傳參大小有限,而且需要後臺根據jsonp的請求方式進行封裝結果返回。 其中參數jsonp預設為callback,jsonpCallback為隨機生成的回調函數名,若指定handleRequest,則後臺參數返回時為 ...
  • 一、原生JavaScript編寫tab切換 二、jQuery編寫tab切換 在用jQuery編寫選項卡過程中,重要的事搞清楚 .eq() 和 .index() 的使用方法。 .eq()是jQuery遍歷的一種方法,參數是元素的索引 .index() 。要註意index是基於0開始的;如果index為 ...
  • 部署普通站點 1、首先下載apache24版本,下載地址為http://pan.baidu.com/s/1pLmvDgB; 2、解壓到你的電腦本地目錄,如D:\Apache24(下文配置都會以當前目錄作為參考說明) 3、修改D:\Apache24\conf\目錄下的httpd.conf文件 部署普通 ...
  • JavaScript數組簡介 JavaScript中的數組與其他語言中的數組是不同的,主要體現在: 數組中存儲的各項可以是不同類型的數據 數組的大小是動態變化的,當新增項時或移除項時可以動態的改變大小來容納當前數據項 在JavaScript中創建數組 在JavaScript中創建數組有兩種方式: 其... ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...