webpack3最新版本配置研究(一)loader
webpack這貨還是挺火的,目前前端不管是react和vue都用這個打包,還是挺好用的,本文剛開始寫的是webpack2,但後來發現webpack3可以無傷升級就升級了下,據說webpack3相對於2的生成的程式碼執行速度更快!在家裡裝了個最新版本的nodejs8.4.0,附帶的npm是5.3.0的,有的時候install的時候會爆Cannot read property ‘0’ of undefined,目前的辦法是npm install -g [email protected]退級,或者安裝nodejs6的穩定版,之後可能會處理這個bug
什麼是Webpack
WebPack可以看做是模組打包機:它做的事情是,分析你的專案結構,找到JavaScript模組以及其它的一些瀏覽器不能直接執行的拓展語言(Scss,TypeScript等),並將其打包為合適的格式以供瀏覽器使用。
WebPack和Grunt以及Gulp相比有什麼特性
其實Webpack和另外兩個並沒有太多的可比性,Gulp/Grunt是一種能夠優化前端的開發流程的工具,而WebPack是一種模組化的解決方案,不過Webpack的優點使得Webpack可以替代Gulp/Grunt類的工具。
webpack的安裝和其他的npm包類似
npm init //一路回車,這裡要注意name最好不要取什麼webpack,grunt,glup之類的,不然可能會爆refusing to install xxxx as a dependency of itself
//全域性安裝
npm install -g webpack
//安裝到你的專案目錄,最好制定一個版本號
npm install --save-dev [email protected]3.4.0
首先是最簡單的webpack打包
//index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>index</title>
</head>
<body>
<div id="parent">
</div>
</body>
<script src ="bundle.js"></script>
</html>
//index.js
const divItem = require('./div');
document.getElementById('parent').appendChild(divItem());
//div.js
module.exports = () => {
const divDom = document.createElement('div');
divDom.textContent = 'write something';
return divDom;
}
//webpack.config.js
module.exports = {
// 打包檔案的存放地址
entry: __dirname + "/index.js",
output:{
// 打包後存放地址
path: __dirname,
// 輸出後的檔名
filename: 'bundle.js'
}
}
//package.json中將scripts修改,npm run webpack命令會呼叫webpack命令列
"scripts": {
"webpack":"webpack"
}
然後在當前資料夾使用命令列輸入npm run webpack 就可以將index的檔案和他的require全都打到bundle中了,首先先執行了npm中的script呼叫了webpack命令,webpack命令直接執行了webpack.config.js中的配置,將index.js打包到bundle檔案裡引入
Loader
webpack通過呼叫外部的指令碼可以對各種檔案進行處理,把下一代的ES6,ES7轉換為ES5。或者說對React的開發而言,可以把React的JSX檔案轉換為JS檔案。也可以將css打包到js中,例如style和css的loader,在webpack1中loader在module中是用loaders欄位的,在webpack2中使用的是rules欄位
babel
babel是loader中比較重要的,用來將es6和es7轉換成es5來進行瀏覽器的展示,用下列命令安裝它們
npm install –save-dev babel-core babel-loader babel-preset-es2015 babel-preset-react
module: {
rules: [
{
test: /\.js|jsx$/, //是一個正則,代表js或者jsx字尾的檔案要使用下面的loader
loader: "babel-loader"
}
]
}
//建立一個.babelrc,webpack中的babel會自動呼叫該檔案的配置到babel中轉換js
{
"presets": ["react", "es2015"]
}
這時再執行下npm run webpack之後,發現之前index和div中的const寫法被轉換成es5的var了
cssloader
用來解析js中引入的css和sass,老規矩
npm install –save-dev style-loader css-loader
//webpack.config.js中修改module
module: {
rules: [
{
test: /\.js|jsx$/, //是一個正則,代表js或者jsx字尾的檔案要使用下面的loader
loader: "babel-loader"
},
{
test: /\.css$/,
loader: "style-loader!css-loader"//新增對樣式表的處理
}
]
}
//生成一個index.css檔案來新增一些樣式
#parent{
color: red;
}
//index.js中新增樣式
require('./index.css');
執行npm run webpack之後開啟index.html是不是字型變紅了呢?
相關推薦
webpack3最新版本配置研究(一)loader
webpack這貨還是挺火的,目前前端不管是react和vue都用這個打包,還是挺好用的,本文剛開始寫的是webpack2,但後來發現webpack3可以無傷升級就升級了下,據說webpack3相對於2的生成的程式碼執行速度更快!在家裡裝了個最新版本的nodej
[轉] webpack3最新版本配置研究(五) devtool,webpack-dev-server,CommonsChunkPlugin
war () 最新版本 獲取 報錯 key num clas 容易 devtool devtool是webpack中config自帶的屬性只要使用就可以了不用安裝 webpack官網的解釋如下 當 webpack 打包源代碼時,可能會很難追蹤到錯誤和警告在源代碼中的原始位
linux 配置文件.conf 非打印字符出錯的研究(一)
highlight 運行錯誤 配置文件 檢查 bsp 換行符 span 字符 future linux 大量使用 .conf配置文件,經常從網上復制的配置信息,保存後,會出現運行錯誤。原因就是復制到了一個不可見的,無效的非打印字符。如何檢查並清除這些無效字符,今天探討一下。
Spring 事務配置實戰(一):過濾無需事務處理的查詢之類操作
log pla ssi pan spl tail gif aop img <tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes
(轉)Redis研究(一)—簡介
創始人 存儲結構 隊列 cached tar 寫入 關系 退出 使用 http://blog.csdn.net/wtyvhreal/article/details/41855327 Redis是一個開源的高性能鍵值對數據庫。它通過提供多種鍵值數據類型來適應不同場景下的
SGI STL內存配置器(一):內存泄漏?
分解 產生 for void 客戶端 lin call free 創建過程 閱讀了Alexander大神的SGI STL源碼,膜拜,很高質量的源碼,獲益匪淺。溫故而知新!下文中所有STL如無特殊說明均指SGI版本實現。 STL 內存配置器 STL對內存管理最核心部分我覺得是
hibernate框架在eclipse下的配置方法(一)
java、 sql數據庫 文件目錄 測試表 any 配置 包名 ive 當我 一、ORM O:object 對象 R:Realtion 關系(關系型數據庫) M:Mapping 映射 ORM:對象關系型映射 目前流行的編程語言,如Java、C# ,它們都是面向對象的編程
Linux系統集群架構線上項目配置實戰(一)
linux 項目 實戰 Linux系統集群架構線上項目配置實戰(一)本文出自 “民工哥博客” 博客,請務必保留此出處http://mingongge.blog.51cto.com/2429897/1971210Linux系統集群架構線上項目配置實戰(一)
CentOS7上安裝配置GitLab(一)
gitlab GitLab CentOS7 GitLab 雖然GitHub已經很好了,但是我們必須聯上公網才可以使用並且如果不付費的話,你的代碼在網上就是公開的!但是在企業環境中,我們公司的代碼不希望被公開並且也不想付費給GitHub,這時怎麽辦呢?我們可以用GitLab搭建企業自己的Gi
cloudfoundry研究(一) ---- BOSH與monit
我們一般使用BOSH來部署cloudfoundry。使用bosh vms命令來檢視各個節點的執行情況,如下所示: 通過這種形式,我們可以一目瞭然的檢視到各節點的執行情況(running,failing等等),而這些資訊都是通過Monit來獲取的。 什麼是Monit?
安卓 dex 通用脫殼技術研究(一)
注:以下4篇博文中,部分圖片引用自DexHunter作者zyqqyz在slide.pptx中的圖片,版本歸原作者所有; 0x01 背景介紹 安卓 APP 的保護一般分為下列幾個方面: JAVA/C程式碼混淆 dex檔案加殼 .so檔案加殼 反動態除錯技術 其中混淆
Alpha版本沖刺(一)
roc 重要 平臺 估計 正則表達 初步使用 如何獲取 image 心理 目錄 摘要 團隊部分 個人部分 摘要 隊名:小白吃 組長博客:hjj 作業博客:來自雙十一的愛 團隊部分 後敬甲(組長) 過去兩天完成了哪些任務 文字描述 Alpha版本的任務細分
Elam的caffe筆記之配置篇(一):CentOS6.5編譯安裝gcc4.8.2
Elam的caffe筆記之配置篇(一):CentOS6.5編譯安裝gcc4.8.2 配置要求: 系統:centos6.5 目標:基於CUDA8.0+Opencv3.1+Cudnnv5.1+python3.6介面的caffe框架 任何對linux處於入門級別的小白都應
RabbitMQ研究(一)
RabbitMQ是基於AMQP(Message Queue高階訊息佇列協議),是由erlang語言開發 使用rabbitMQ的優點 1、使得簡單,功能強大。 2、基於AMQP協議。 3、社群活躍,文件完善。 4、高併發效能好,這主要得益於Erlang語言。 5、Spring Boot預設
Jenkins持續整合介紹及外掛安裝版本更新演示(一)--技術流ken
Jenkins介紹 Jenkins是一個開源軟體專案,是基於Java開發的一種持續整合工具,用於監控持續重複的工作,旨在提供一個開放易用的軟體平臺,使軟體的持續整合變成可能。 Jenkins功能包括: 1、持續的軟體版本釋出/測試專案。 2、監控外部呼叫執行
Linux —mysql資料庫配置服務(一)
本章內容 關係型資料庫基礎 安裝MySQL 管理資料庫和表 使用者和許可權管理 函式和儲存過程 MySQL架構 儲存引擎 伺服器選項,系統和狀態變數 優化查詢和索引管理 鎖和
軟件安裝配置筆記(一)——oracle的安裝與配置
管理器 系統 同時 acl 安裝配置 默認方法 network 設置 分號 註: 1、當ArcGIS Server 和 ArcMap 安裝在一臺服務器上,Oracle 安裝在另一臺服務器上時,ArcGIS Server 和 ArcMap的服務器需要同時安裝 32 位 和 6
軟體安裝配置筆記(一)——oracle的安裝與配置
注: 1、當ArcGIS Server 和 ArcMap 安裝在一臺伺服器上,Oracle 安裝在另一臺伺服器上時,ArcGIS Server 和 ArcMap的伺服器需要同時安裝 32 位 和 64 位 Oracle 客戶端。 (server需64位,m
IDEA 2018.1.5版本 配置 Subversion(SVN)
最近專案使用 svn 作程式碼管理軟體。IDEA 的版本比較新,是 2018.1.5 的版本。檢出 svn:// 的路徑的專案時,idea 報錯 cannot run program 'svn' 。解決思路
mybatis 解析配置檔案(一)之XML的DOM解析方式
簡介 在之前的文章《mybatis 初步使用(IDEA的Maven專案, 超詳細)》中, 講解了mybatis的初步使用, 並總結了以下mybatis的執行流程: 通過 Resources 工具類讀取 mybatis-config.xml, 存入 Reader; SqlSessionFactoryBuil