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

資訊專欄INFORMATION COLUMN

webpack配置 babel

Songlcy / 2466人閱讀

摘要:三集成所需要的依賴和在或加載模塊時(shí),對(duì)代碼進(jìn)行預(yù)處理,語(yǔ)法轉(zhuǎn)化為語(yǔ)法。到目前位置,用于開(kāi)發(fā)應(yīng)用的環(huán)境已經(jīng)配置好了。

本系列主要學(xué)習(xí)webpack的配置。webpack自己間接的用過(guò)不少次,但是自己配置卻沒(méi)多少次,所以特地寫寫文章,學(xué)習(xí)webpack的配置,有不恰當(dāng)?shù)牡胤剑瑲g迎指正。這次配置 babel

若你對(duì)webpack的概念還不了解,先查看相應(yīng)文檔webpack中文文檔

一、初始化一個(gè)webpack項(xiàng)目
npm init -y                     // 初始化項(xiàng)目,會(huì)添加一個(gè)package.json
npm install --save-dev webpack  // 下載webpack,并記錄到package.json的devDependencies中
二、新建webpack.config.js文件

指定入口和出口。

// webpack.config.js
const path = require("path");

module.exports = {
  entry: "./src/index.js",
  output: {
    filename: "bundle.js",
    path: path.resolve(__dirname, "dist")
  },
  mode:"development"
};

當(dāng)前項(xiàng)目目錄為

dist            // 手動(dòng)新建,因出口指定為此文件夾。
 |---index.html
src
 |---index.js
package-lock.json
package.json
webpack.config.json
三、集成babel

所需要的依賴:babel-loader、babel-core、babel-preset-env、babel-polyfill、babel-runtime和babel-plugin-transform-runtime

babel-loader:在import或加載模塊時(shí),對(duì)es6代碼進(jìn)行預(yù)處理,es6語(yǔ)法轉(zhuǎn)化為es5語(yǔ)法。
babel-core:允許我們?nèi)フ{(diào)用babel的api,可以將js代碼分析成ast(抽象語(yǔ)法樹(shù)),方便各個(gè)插件分析語(yǔ)法進(jìn)行相應(yīng)的處理.
babel-preset-env:指定規(guī)范,比如es2015,es2016,es2017,latest,env(包含前面全部)
babel-polyfill:它效仿一個(gè)完整的ES2015+環(huán)境,使得我們能夠使用新的內(nèi)置對(duì)象比如 Promise,靜態(tài)方法比如Array.from 或者 Object.assign, 實(shí)例方法比如 Array.prototype.includes 和生成器函數(shù)(提供給你使用 regenerator 插件)。為了達(dá)到這一點(diǎn), polyfill 添加到了全局范圍,就像原生類型比如 String 一樣。
babel-runtime babel-plugin-transform-runtime:與babel-polyfill作用一樣,使用場(chǎng)景不一樣。

為了更簡(jiǎn)單明了,把依賴的安裝分開(kāi),不一次性安裝所有依賴。

1、安裝babel-loader和babel-core
npm install --save-dev babel-loader babel-core

在webpack.config.js中添加

module: {
    rules: [
      {
        test: /.js$/, exclude: /node_modules/, loader: "babel-loader"
        // test 符合此正則規(guī)則的文件,運(yùn)用 loader 去進(jìn)行處理,除了exclude 中指定的內(nèi)容
      }
    ]
  }
2、安裝babel-preset-env
npm install babel-preset-env --save-dev

新建 .babelrc 文件

//babelrc
{
  "presets": ["env"]
}
3、安裝babel-polyfill

此依賴用于開(kāi)發(fā)應(yīng)用,會(huì)在全局添加新的方法,會(huì)污染全變量。

npm install --save babel-polyfill

在入口文件本文為index.js的頂部添加

import "babel-polyfill"

在webpcak.config.js中將babel-polyfill添加到entry數(shù)組中

module.exports = {
  entry: ["babel-polyfill", "./src/index.js"],
  ...

最終webpack.config.js為

const path = require("path");

module.exports = {
  entry: ["babel-polyfill", "./src/index.js"],
  output: {
    filename: "bundle.js",
    path: path.resolve(__dirname, "dist")
  },
  mode:"development",
  module: {
    rules: [
      {
        test: /.js$/, exclude: /node_modules/, loader: "babel-loader"
        // test 符合此正則規(guī)則的文件,運(yùn)用 loader 去進(jìn)行處理,除了exclude 中指定的內(nèi)容
      }
    ]
  }
};

項(xiàng)目目錄為

dist            // 手動(dòng)新建,因出口指定為此文件夾。
 |---index.html
src
 |---index.js
.babelrc
package-lock.json
package.json
webpack.config.json

到目前位置,用于開(kāi)發(fā)應(yīng)用的babel環(huán)境已經(jīng)配置好了。
執(zhí)行

npx webpack --config webpack.config.js

便可在dist中看到打包出來(lái)的bundle.js文件

4.babel-runtime 和 babel-plugin-transform-runtime

如果你不是開(kāi)發(fā)應(yīng)用,而是開(kāi)發(fā)提供給第三方利用的框架的話,將第3步的polyfill改為這兩個(gè)依賴。它們?cè)诰植刻砑有路椒ǎ晃廴救肿兞?/p>

npm install --save-dev babel-runtime babel-plugin-transform-runtime

.babelrc文件

{
  "presets": ["env"],
  "plugins": ["transform-runtime"]
}

用于開(kāi)發(fā)框架的babel環(huán)境已經(jīng)配置好,
同樣執(zhí)行

npx webpack --config webpack.config.js

便可在dist中看到打包出來(lái)的bundle.js文件

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

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/94131.html

相關(guān)文章

  • 使用 webpack 4 和 Babel 7 構(gòu)建 React 應(yīng)用及如何引入 Material D

    摘要:建立項(xiàng)目首先,創(chuàng)建工程目錄現(xiàn)在我們已經(jīng)創(chuàng)建了我們要開(kāi)發(fā)應(yīng)用程序的文件夾,接著需要添加一個(gè)文件。這里為了版本的一致性,我把里的版本號(hào)前面刪除了。為此,需要?jiǎng)?chuàng)建一個(gè)名為的文件,用來(lái)配置。 showImg(https://segmentfault.com/img/bVboiHi?w=1000&h=625); 想閱讀更多優(yōu)質(zhì)文章請(qǐng)猛戳GitHub博客,一年百來(lái)篇優(yōu)質(zhì)文章等著你! 在過(guò)去的一年和...

    asoren 評(píng)論0 收藏0
  • webpack 項(xiàng)目構(gòu)建:(二)ES6 編譯環(huán)境搭建

    摘要:本質(zhì)就是一個(gè)編譯器,通過(guò)將源代碼解析成抽象語(yǔ)法樹(shù)將源代碼的結(jié)果一系列轉(zhuǎn)換生成目標(biāo)代碼的將目標(biāo)代碼的轉(zhuǎn)換成代碼。項(xiàng)目構(gòu)建三開(kāi)發(fā)環(huán)境本地服務(wù)器搭建源碼下載地址參考資料入門阮一峰中文文檔中文網(wǎng) 注:以下教程均在 windows 環(huán)境實(shí)現(xiàn),使用其他操作系統(tǒng)的同學(xué)實(shí)踐過(guò)程可能會(huì)有些出入。 ??在上一章 webpack 項(xiàng)目構(gòu)建:(一)基本架構(gòu)搭建 我們搭建了一個(gè)最基本的 webpack 項(xiàng)目,現(xiàn)...

    marser 評(píng)論0 收藏0
  • webpack - babel配置

    摘要:配置是一個(gè)編譯器,是前端開(kāi)發(fā)中的一個(gè)利器。其中,插件是為了告訴只編譯批準(zhǔn)的內(nèi)容,相當(dāng)于及最新版本。安裝用法將下面內(nèi)容添加到文件中更多細(xì)節(jié)參考插件。 webpack - babel配置 babel是一個(gè)javascript編譯器,是前端開(kāi)發(fā)中的一個(gè)利器。它突破了瀏覽器實(shí)現(xiàn)es標(biāo)準(zhǔn)的限制,使我們?cè)陂_(kāi)發(fā)中可以使用最新的javascript語(yǔ)法。 通過(guò)構(gòu)建和babel,可以使用最新js語(yǔ)法進(jìn)行...

    yunhao 評(píng)論0 收藏0
  • Webpack入門到精通(1)

    前言 什么是webpack 本質(zhì)上,webpack 是一個(gè)現(xiàn)代 JavaScript 應(yīng)用程序的靜態(tài)模塊打包器(module bundler)。當(dāng) webpack 處理應(yīng)用程序時(shí),它會(huì)遞歸地構(gòu)建一個(gè)依賴關(guān)系圖(dependency graph),其中包含應(yīng)用程序需要的每個(gè)模塊,然后將所有這些模塊打包成一個(gè)或多個(gè) bundle。 webpack 有哪些功能(代碼轉(zhuǎn)換 文件優(yōu)化 代碼分割 模塊合并 ...

    SunZhaopeng 評(píng)論0 收藏0
  • Webpack入門到精通(1)

    前言 什么是webpack 本質(zhì)上,webpack 是一個(gè)現(xiàn)代 JavaScript 應(yīng)用程序的靜態(tài)模塊打包器(module bundler)。當(dāng) webpack 處理應(yīng)用程序時(shí),它會(huì)遞歸地構(gòu)建一個(gè)依賴關(guān)系圖(dependency graph),其中包含應(yīng)用程序需要的每個(gè)模塊,然后將所有這些模塊打包成一個(gè)或多個(gè) bundle。webpack 有哪些功能(代碼轉(zhuǎn)換 文件優(yōu)化 代碼分割 模塊合并 自...

    wangbinke 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<