国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

從0開始使用webpack搭建react工作流

bingchen / 1348人閱讀

摘要:另外一方面,即使不是想搭建自己的工作流,而是使用現(xiàn)成的腳手架,大家都會用。顯然,徹底掌握如何從零開始搭建一個能夠貼近實(shí)際項(xiàng)目的工作流,是一個想要滿足工作最基本要求的人必備的技能。

很多人想搭建一套屬于自己的前端工作流,最開始的時候我們的工作流萌芽是從寫一個項(xiàng)目的時候,拷貝以前寫過的一個項(xiàng)目文件夾改完直接使用開始的,后來使用了grunt和gulp,再到webpack,每一個前端人員想掌握如何書寫一個符合自己項(xiàng)目的工作流,以便復(fù)用,達(dá)到高效工作的目的。

另外一方面,即使不是想搭建自己的工作流,而是使用現(xiàn)成的腳手架,大家都會用。

vue init webpack 項(xiàng)目名

跑一下vue官方的例子,但是實(shí)際工作的時候,文件夾結(jié)構(gòu)一變,或者組件的倒入和導(dǎo)出和官方例子不一致,就徹底不會了。

很多人會vue也僅僅限于能跑起來vue官方的例子,或者在它的基礎(chǔ)上復(fù)制,但是深度的定制以符合實(shí)際生產(chǎn)環(huán)境,是很多人不會的,甚至連改一個圖片的路徑都搞不定,明顯這樣的“會”就相當(dāng)于你知道蠟燭是用來照明的,但是在冬天的夜里,你凍得直哆嗦,旁邊有一堆木頭,你卻不能用蠟燭引燃木料取暖一樣。更簡單直接的說法,就是,鸚鵡學(xué)舌而已。

顯然,徹底掌握如何從零開始搭建一個能夠貼近實(shí)際項(xiàng)目的工作流,是一個想要滿足工作最基本要求的人必備的技能。

今天我們就來實(shí)現(xiàn)它。我們通過從零開始實(shí)現(xiàn)一個react開發(fā)環(huán)境的腳手架,讓大家能夠徹底的掌握如何深度定制vue、react和angular項(xiàng)目的能力,同時能夠讓大家慢慢的形成自己的一套工作流,大幅度提高工作效率。

OK,開始吧。

1.我們新建一個文件夾,helloworld.

2.我們進(jìn)入文件夾,初始化項(xiàng)目。

npm init

3.安裝webpack。

npm i webpack --save-dev

為什么用webpack?因?yàn)楝F(xiàn)在公司基本都用它。我們使用webpack 4.29.0,也就是最新版,因?yàn)樽钚掳姹九渲闷饋碜钊菀祝δ芤沧顝?qiáng)大。

4.安裝Webpack命令行工具,webpack-cli。

? 為什么要裝它?因?yàn)閣ebpack其實(shí)配置起來挺麻煩的,用它稍微好點(diǎn)兒。

npm i webpack-cli --save-dev

5.打開package.json,添加一句:

"build": "webpack"

報錯了,人家提示的特別到位,說你沒有入口文件,人家缺啥你就補(bǔ)啥就行了。

index.js里面隨便寫點(diǎn)啥:

console.log("大彬哥666");

再跑一遍:

npm run build

ok,很美好。


ng](/img/bVbnMEu)

ok,game over.

有同學(xué)可能會說,等會兒,老師,你這個咋跟我學(xué)過的不一樣,不得配置入口文件和輸出文件嗎?

并!不!需!要!那是你沒遇見我,你早遇見我,你早就不配置了。

6.我們確實(shí)可以打包了,但是這樣好像還是不行啊,我們通常情況下分為開發(fā)環(huán)境和生產(chǎn)環(huán)境,現(xiàn)在這樣怪怪的。沒關(guān)系馬上就滿足你的需求,解決你的難言之隱,讓你找回男人的尊嚴(yán)。我們搞一把開發(fā)模式和生產(chǎn)模式,

一圖抵萬言:

"dev": "webpack --mode development",
"build": "webpack --mode production"

我們回到gitbash里面,我們走一個

npm run dev

很好,直接就給搬到dist文件夾了,但是我們想上線肯定得是壓縮的:

npm run build

搞定鳥。又有人說了,老師我們公司項(xiàng)目不是用的默認(rèn)入口和輸出,咋辦,我們公司比較崇拜你,所有的文件都是用dabinge666文件夾包一層的(下面可以不做直接看6)。

"dev": "webpack --mode development ./dabinge666/src/js/index.js --output ./dabinge666/main.js",
"build": "webpack --mode production ./dabinge666/src/js/index.js --output ./dabinge666/main.js"

信彬哥,無bug.

7.配置完了webpack打包這塊,我們想寫代碼都時候用ES6或者ES7,因?yàn)檫@兩個裝起B(yǎng)來666.

也好搞,先裝babel加載器

npm i @babel/core babel-loader @babel/preset-env --save-dev

然后配置,

    "dev": "webpack --mode development --module-bind js=babel-loader",
    "build": "webpack --mode production --module-bind js=babel-loader"

最后:

npm run build 

打開main.js,已經(jīng)編譯了。

8.好,我們開始再把B格提升一個檔次,我們玩玩react.

首先裝react

npm i react react-dom --save-dev

然后裝babel-preset-react

npm i @babel/preset-react --save-dev

新建 .babelrc,輸入,

{
  "presets": ["@babel/preset-env", "@babel/preset-react"]
}

新建一個webpack.config.js,輸入

module.exports = {
  module: {
    rules: [
      {
        test: /.(js|jsx)$/,
        exclude: /node_modules/,
        use: {
          loader: "babel-loader"
        }
      }
    ]
  }
};

然后新建一個App.js

import React from "react";
import ReactDOM from "react-dom";
const App = () => {
  return (
    

大彬哥一如既往的666

); }; export default App; ReactDOM.render(, document.getElementById("app"));

最后引入到index.js里面

import App from "./App";

然后重新build,又可以了,豈止是很贊,簡直是很贊。

到這里react安裝就搞定了。

9.如果你想搞點(diǎn)sass了你可以繼續(xù)搞,因?yàn)椴皇敲恳粋€項(xiàng)目都用,我就不搞了,我只搞最原生的css,當(dāng)然順便也把html搞了。

npm i mini-css-extract-plugin css-loader --save-dev
npm i html-webpack-plugin html-loader --save-dev

webpack.config.js配置文件如下:

const HtmlWebPackPlugin = require("html-webpack-plugin");
const MiniCssExtractPlugin = require("mini-css-extract-plugin");

module.exports = {
  module: {
    rules: [
      {
        test: /.js$/,
        exclude: /node_modules/,
        use: {
          loader: "babel-loader"
        }
      },
      {
        test: /.html$/,
        use: [
          {
            loader: "html-loader",
            options: { minimize: true }
          }
        ]
      },
      {
        test: /.css$/,
        use: [MiniCssExtractPlugin.loader, "css-loader"]
      }
    ]
  },
  plugins: [
    new HtmlWebPackPlugin({
      template: "./src/index.html",
      filename: "./index.html"
    }),
    new MiniCssExtractPlugin({
      filename: "[name].css",
      chunkFilename: "[id].css"
    })
  ]
};

10.搞了這么多,我其實(shí)想實(shí)現(xiàn)的就是,我修改點(diǎn)東西,然后自動服務(wù)器刷新,最后開發(fā)完了,然后build一次完事兒。這個簡單:

npm i webpack-dev-server --save-dev

配置一下,

然后輸入

npm start

就可以了。

通過上面的過程呢,我們就實(shí)現(xiàn)了完整的工作流,但是有些具體的項(xiàng)目可以根據(jù)需要去添加對應(yīng)的loaders等,不如有人寫less,那就加less的loaders,還有我們需要對最終上線的文件(比如bundle.js)加時間戳去緩存,這些都是個性化的不同項(xiàng)目的需求了,大家可以在我的這個基礎(chǔ)上繼續(xù)搞。

最后我們總結(jié)一下,工作流實(shí)現(xiàn)了

1.ES6編譯

2.css編譯

3.html壓縮

4.react支持

5.服務(wù)器自動刷新

大家可以在我的基礎(chǔ)上繼續(xù)添加功能,實(shí)現(xiàn)自己的工作流,有了工作流配合著組件庫,就能真正的工業(yè)化生產(chǎn),大幅度的提高效率。

本文所有源碼:https://github.com/leolau2012...

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/101427.html

相關(guān)文章

  • 學(xué)習(xí)開始搭建React腳手架

    摘要:寫在前面準(zhǔn)備學(xué)習(xí)一下和相關(guān)的東西,官方的腳手架看起來太繁瑣,所以打算自己來搭建一個,參考了這個文檔從零搭建全家桶框架教程步驟上都差不多第一步,依賴總覽完成到我現(xiàn)在半成品的過程中,目前完成開發(fā)模式的相關(guān)操作,添加了按需加載的地步。 寫在前面 準(zhǔn)備學(xué)習(xí)一下react和webpack相關(guān)的東西,官方的腳手架看起來太繁瑣,所以打算自己來搭建一個,參考了這個文檔從零搭建React全家桶框架教程;...

    cod7ce 評論0 收藏0
  • 使用webpack和babel搭建react開發(fā)環(huán)境

    摘要:譯文原文來自寫在前面使用已經(jīng)蠻長一段時間但是在新項(xiàng)目開始之際都是東拼西湊其他項(xiàng)目的配置來使用如果要自己從零開始寫一個完整項(xiàng)目的配置估計(jì)得費(fèi)死勁所以在發(fā)布版本之際正是時候來認(rèn)真從零開始學(xué)習(xí)了是一個出自的庫用于構(gòu)建用戶交互界面是一個非常厲害的有 譯文,原文來自https://scotch.io/tutorials/s...寫在前面,使用webpack已經(jīng)蠻長一段時間,但是在新項(xiàng)目開始之際,...

    AZmake 評論0 收藏0
  • 開始搭建一個React項(xiàng)目

    摘要:優(yōu)化代碼拆分從入口文件開始,遞歸地構(gòu)建了整個應(yīng)用的模塊依賴圖表,然后通常會將所有的模塊打包成一個。 如果你還不知道什么是React,請點(diǎn)擊這里github源碼 安裝Node.js 如果你還不知道什么是ECMAScript,請點(diǎn)擊這里 如果你還不知道什么是Node.js,請點(diǎn)擊這里 下載Node.js并安裝;接著打開windows命令行窗口分別輸入node -v及npm -v如下圖所示,...

    HollisChuang 評論0 收藏0
  • 前端相關(guān)大雜燴

    摘要:希望幫助更多的前端愛好者學(xué)習(xí)。前端開發(fā)者指南作者科迪林黎,由前端大師傾情贊助。翻譯最佳實(shí)踐譯者張捷滬江前端開發(fā)工程師當(dāng)你問起有關(guān)與時,老司機(jī)們首先就會告訴你其實(shí)是個沒有網(wǎng)絡(luò)請求功能的庫。 前端基礎(chǔ)面試題(JS部分) 前端基礎(chǔ)面試題(JS部分) 學(xué)習(xí) React.js 比你想象的要簡單 原文地址:Learning React.js is easier than you think 原文作...

    fuyi501 評論0 收藏0
  • 【譯】一個小時搭建一個全棧Web應(yīng)用框架(上)

    摘要:初始項(xiàng)目設(shè)置我們將使用包管理器來處理依賴項(xiàng)。使用包管理器可以使您的項(xiàng)目依賴項(xiàng)保持最新狀態(tài),并能夠獲取和安裝最新的包。是小型應(yīng)用的最佳選擇之一。 翻譯:瘋狂的技術(shù)宅英文標(biāo)題:Creating a full-stack web application with Python, NPM, Webpack and React英文原文:https://codeburst.io/creating....

    wizChen 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<