摘要:最后還可以跟我們的進行結合管理代碼什么是說明白點就是模塊打包機,可以很好的管理我們的模塊,可以對瀏覽器進行更好的兼容。安裝首選我們要安裝,中已經給我們下載了我們通過進行安裝管理。
webpack入門及結合react進行開發
重要提示(2017年7月26號更新)
本文介紹的是最新版的3.4.1,并且其中又跟React結合的例子!
什么是webpack,為什么我們要使用webpack 為什么我們要使用webpack前端技術更新太快,從幾年前的jquery、djto、Prototype到react、vue、angular,自動化工具也是這樣從之前的grunt、requireJs到現在的gulp、webpack、jspm、包管理工具也是從之前的bower、npm到現在的yern!技術更新換代特別快,所以我們開發人員每天應該有倆個小時以上來學習技術!
現今的很多網頁其實可以看做是功能豐富的應用,它們擁有著復雜的JavaScript代碼和一大堆依賴包。為了簡化開發的復雜度,前端社區涌現出了很多好的實踐方法
模塊化 通過webpack我們使用它可以很好的管理我們的前端代碼
打包 通過webpack我們可以進行應用打包,編輯、壓縮代碼、圖片
loader 通過webpack我們可以通過loader進行編輯我們的模塊,把我們的文件或者模塊進行編輯,編輯成我們的javascript或者網頁能看懂的語言!
通過webpack可以編輯less、sass、postcss等css預處理器。
最后還可以跟我們的react、vue進行結合管理代碼
什么是webpackWebPack說明白點就是模塊打包機,可以很好的管理我們的模塊,可以對瀏覽器進行更好的兼容。
開始使用Webpack現在開始使用最新版的webpack,我寫的比較簡單希望對你們有所幫助,看完之后可以使用我們的webpack。
安裝首選我們要安裝nodeJs,nodeJs中已經給我們下載了npm我們通過npm進行安裝管理。
項目初始化npm init -y安裝webpack
npm install webpack -gd //全局 npm install webpack --save-dev //局部
安裝后之后我們就可以進行打包打包使用
創建app.js
import bar from "./bar"; bar();
創建bar.js
export default function bar() { document.write("Hello World") }
index.html
... ... //bundle使我們進行打包的文件
在webpack.config.js中進行配置
module.exports = { entry: "./app.js", //entry引入的文件 output: { filename: "bundle.js" //output 打包到的文件 } }
命令行運行webpack,打開瀏覽器你會看到我們的Hello World,這就是最簡單的webpack使用!
下邊結合react進行開發 安裝babel-lorder通過babel我們可以編輯Es6+、jsx等,我們開發現代代碼必不可少的一款工具!
npm install --save-dev babel-loader babel-core
在這里我要介紹一下cnpm,我們在配置環境的過程中可能會遇到自己網速慢,或者npm服務器慢的特點,我們可以通過淘寶鏡像cnpm進行安裝,跟咱們的npm一樣不過是淘寶鏡像過來的,因此不受外網服務器影響。安裝跟npm一樣,我們做的額只不過是把前邊的npm改成cnpm
安裝cnpmnpm install cnpm -gd轉譯插件
我們需要安裝一些插件才可以進行我們的jsx編輯,因為我們的react就是通過jsx寫的
npm install babel-preset-env babel-preset-react --save-dev //淘寶鏡像安裝 cnpm install babel-preset-env babel-preset-react --save-dev在主項目錄下的babelrc進行配置
{ "presets": ["env","babel-preset-react"] }安裝 react庫
npm install react react-dom --save
這樣我們就可以進行react和webpack結合進行模塊管理。
Hello World實例我們的項目結構如下圖:
把index.html、bundle.js放在build文件夾下邊,我們的入口文件app.js文件地址不變。
index.html
webpack
app.js
"use strict" import React from "react"; import ReactDOM from "react-dom"; import HelloWorld from "./components/HelloWorld"; import "./css/main.css"; ReactDOM.render(, document.getElementById("app") );
webpack.config.js
module.exports = { entry: "./app.js", output: { filename: "build/bundle.js" }, module: { rules: [ {test: /.js$/, exclude: /node_modules/, loader: "react-hot-loader!babel-loader"} ] } }
我們運行webpack watch進行項目啟動,我們看到的是本地文件的網址,我們需要安裝下邊的環境插件啟動端口
webpack-dev-server啟動端口我們的webpack啟動的端口8080:端口
npm install webpack-dev-server -gd //全局 npm install webpack-dev-server --save-dev //局部 //我們的文件需要在全局進行安裝
運行 webpack-dev-server --content-base build/ 默認啟動是運行 webpack-dev-server,由于我們創建了文件框架,所以需要指定目錄文件運行 --content-base build/這樣我們就可以進行文件刷新,發現很不方便,需要進行文件自動刷新,或者模塊熱更新
首先需要配置webpakc.comfig.js文件var path = require("path"); ...... output: { path: path.resolve(__dirname, "build"), publicPath: "/assets/", filename: "build/bundle.js" }運行命令
webpack-dev-server --content-base build/ --inline
這樣就可以進行文件更新,但是這樣做每次都大刷頁面,還可以更好一點,比如更新其中的一個模塊其他的不刷新,
安裝react-hot-loadernpm install react-hot-loader --save-dev
繼續配置webpack配置文件
rules: [ {test: /.js$/, exclude: /node_modules/, loader: "react-hot-loader!babel-loader"}, {test: /.css$/, exclude: /node_modules/, loader: "style-loader!css-loader"} ]
配置完的大概是這樣
var path = require("path"); module.exports = { devtool:"source-map", entry: "./app.js", output: { path: path.resolve(__dirname, "build"), publicPath: "/assets/", filename: "build/bundle.js" }, module: { rules: [ {test: /.js$/, exclude: /node_modules/, loader: "react-hot-loader!babel-loader"}, {test: /.css$/, exclude: /node_modules/, loader: "style-loader!css-loader"} ] } }
剛開始就說過webpack很強大,我們可以通過安裝loader進行處理,比如說css、less、sass等
安裝style-loader css-loadernpm install style-loader css-loader --save-dev
這樣我們就可以引入css到我們的入口文件,今天遇到一點小坑,因為之前用到是jspm,我在文件后邊加了個!
跟我們引入其他模塊一樣,css也是我們的模塊
import "./css/main.css";
這樣就介紹的差不多了,下邊給大家介紹一款webpack模塊瀏覽器調試的小東西,
我們只需要在我們的webpack配置文件中加入下邊的代碼就可以進行代碼調試!
module.exports = { devtool:"source-map" }寫在最后
如果覺得對你有所幫助,可以點贊收藏,如果發現哪里寫的不好可以在下邊評論指出,你的意見就是我繼續編寫下去的動力,如果有什么問題可以評論指出我會為你進行解答!
個人創建了一個群,因為群二維碼有時間限制,大家可以掃描我的個人微信!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/84352.html
摘要:前面我們已經說了大部分的核心內容,接下來我們就說說如何用開發實際項目。因為和結合很緊密,資料也很多,而且我會找機會專門說下這方面的知識,所以我們將重點放到如何用結合上來。所以前面打牢基礎,現在我們開始實際組建工作流。 前面我們已經說了大部分typescript的核心內容,接下來我們就說說如何用typescript開發實際項目。 因為angular和typescript結合很緊密,資料也...
學習的過程中收藏了這些優秀教程和的項目,希望對你有幫助。 github地址, 有不錯的就更新 官方文檔 中文指南 初級教程 webpack-howto 作者:Pete Hunt Webpack 入門指迷 作者:題葉 webpack-demos 作者:ruanyf 一小時包教會 —— webpack 入門指南 作者:VaJoy Larn webpack 入門及實踐 作者:...
摘要:哈哈,我理解,架構就是骨架,如下圖所示譯年月個有趣的和庫前端掘金我們創辦的使命是讓你及時的了解開發中最新最酷的趨勢。 翻譯 | 上手 Webpack ? 這篇就夠了! - 掘金譯者:小 boy (滬江前端開發工程師) 本文原創,轉載請注明作者及出處。 原文地址:https://www.smashingmagazine.... JavaSrip... 讀 Zepto 源碼之代碼結構 - ...
摘要:特意對前端學習資源做一個匯總,方便自己學習查閱參考,和好友們共同進步。 特意對前端學習資源做一個匯總,方便自己學習查閱參考,和好友們共同進步。 本以為自己收藏的站點多,可以很快搞定,沒想到一入匯總深似海。還有很多不足&遺漏的地方,歡迎補充。有錯誤的地方,還請斧正... 托管: welcome to git,歡迎交流,感謝star 有好友反應和斧正,會及時更新,平時業務工作時也會不定期更...
閱讀 2410·2021-11-19 09:40
閱讀 3575·2021-10-12 10:12
閱讀 1883·2021-09-22 15:04
閱讀 2898·2021-09-02 09:53
閱讀 761·2019-08-29 11:03
閱讀 1122·2019-08-28 18:11
閱讀 1724·2019-08-23 15:28
閱讀 3579·2019-08-23 15:05