1. 程式人生 > >從0搭建自己的webpack開發環境(三)

從0搭建自己的webpack開發環境(三)

往期回顧:

從0搭建自己的webpack開發環境(一)

從0搭建自己的webpack開發環境(二)

1.處理JS模組

1.1 將es6程式碼編譯成es5程式碼

程式碼的轉化工作要交給babel來處理

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

@babel/core是babel中的核心模組,@babel/preset-env 的作用是es6轉化es5外掛的外掛集合,而babel-loaderwebpackloader的橋樑。

const sum = (a, b) => {
  return a + b;
};

增加babel的配置檔案 .babelrc

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

配置loader

module: {
	rules: [{ test: /\.js$/, use: "babel-loader" }]
},

現在打包已經可以成功的將es6語法轉化成es5語法!

1.2 解析裝飾器

npm i @babel/plugin-proposal-class-properties @babel/plugin-proposal-decorators --save-dev
"plugins": [
  ["@babel/plugin-proposal-decorators", { "legacy": true }],
  ["@babel/plugin-proposal-class-properties",{"loose":true}]
]

legacy:true表示繼續使用裝飾器,loose為false時會採用Object.defineProperty定義屬性

  • Plugin會執行在Preset之前
  • Plugin 會從第一個開始順序執行,Preset則是相反的

1.3 polyfill

根據.browserslistrc檔案,轉化使用到的瀏覽器api

"presets": [
    ["@babel/preset-env",{
        "useBuiltIns":"usage", // 按需載入
        "corejs":2 // corejs 替代了以前的pollyfill
    }]
]

安裝corejs

npm install core-js@2 --save

使用transform-runtime A plugin that enables the re-use of Babel's injected helper code to save on codesize.可以幫我們節省程式碼。

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

.babelrc中配置外掛

"plugins": [
    "@babel/plugin-transform-runtime"
]

1.4 新增eslint

安裝eslint

npm install eslint
npx eslint --init # 初始化配置檔案
{
    test:/\.js/,
    enforce:'pre',
    use:'eslint-loader'
},

配置eslint-loader可以實時校驗js檔案的正確性,pre表示在所有loader執行前執行

2.source-map

  • eval:生成程式碼 每個模組都被eval執行,每一個打包後的模組後面都增加了包含sourceURL
  • source-map:產生map檔案
  • inline:不會生成獨立的 .map檔案,會以dataURL形式插入
  • cheap:忽略打包後的列資訊,不使用loader中的sourcemap
  • module:沒有列資訊,使用loader中的sourcemap(沒有列資訊)
devtool:isDev?'cheap-module-eval-source-map':false

每個庫中採用的sourcemap方式不一,可以根據自己的需要自行配置

3.resolve解析

想實現使用require或是import的時候,可以嘗試自動新增副檔名進行匹配

resolve: {
    extensions: [".js", ".jsx", ".json", ".css", ".ts", ".tsx", ".vue"]
},

4.拷貝靜態檔案

有時候在打包時希望將一些靜態資原始檔進行拷貝,可以使用copy-webpack-plugin外掛

安裝外掛

npm i copy-webpack-plugin --save-dev

使用拷貝外掛

const CopyWebpackPlugin = require('copy-webpack-plugin');
new CopyWebpackPlugin([
    {from:path.resolve('./src/static'),to:path.resolve('./dist')},
])

相關推薦

0搭建自己webpack開發環境

往期回顧: 從0搭建自己的webpack開發環境(一) 從0搭建自己的webpack開發環境(二) 1.處理JS模組 1.1 將e

0搭建自己webpack開發環境

往期回顧: 從0搭建自己的webpack開發環境(一) 從0搭建自己的webpack開發環境(二) 從0搭建自己的webpack開

使用SpringBoot2.0搭建企業級應用開發框架環境配置

血淚背景 在將甲方粑粑的想法實踐於世人之前,我們的專案至少要經歷 開發→測試→執行 3個環境,對於不同的環境我們可能需要連線不同的資料庫、設定不同的上傳路徑、呼叫不同地址的遠端服務等等,這就要求必須有不同的配置來滿足多環境需求 如果我們是通過打包前手動修改檔案內容的話,會由

搭建 webpack、react 開發環境

cti extends 輕松 ttr extend imp 兩個 world com 配置 react-router-dom 我們開發一個 React 工程肯定不是一兩個“頁面”就可以滿足需求的,所以我們需要一個在多個“頁面&

完美搭建Cocos2d-JS開發環境

npm ip) 當前 ref ram nis 更多 fin 點擊 使用Cocos2d-JS引擎開發遊戲。基本的程序代碼是JavaScript語言,因此,凡是能夠開發JavaScript語言工具都適用於Cocos2d-JS遊戲開發。本書我們推薦WebStorm和Cocos C

Eclipse+ADT+Android SDK 搭建安卓開發環境

新的 參考 語言 找到 rep 64位 add androi 安卓開發環境 要求 必備知識 windows 7 基本操作。 運行環境 windows 7(64位); eclipse-jee-luna-SR2-win32(32位);ADT-23.0.4 下

使用SpringBoot2.0搭建企業級應用開發框架整合Shiro

準備 首先建立使用者許可權表 //使用者表 CREATE TABLE `sys_user` ( `id` varchar(32) NOT NULL COMMENT 'id', `username` varchar(64) DEFAULT NULL COMMENT '

使用SpringBoot2.0搭建企業級應用開發框架使用Lombok

適用人 猿群 你還在為寫Getter/Setter而煩惱嗎?當你寫完一個有參建構函式後發現還需要再寫一個無參建構函式的時候是否有負面情緒產生?每個類中都要寫很長一段的Slf4j日誌物件使你感到憂傷嗎?那就一起來快樂地使用Lombok吧 基於註解提供多種在編譯時生產重複程式碼

使用SpringBoot2.0搭建企業級應用開發框架配置LogBack日誌

前言 SpringBoot預設配置提供了對常用日誌的支援,如:Java Util Logging、Log4J、Log4J2和Logback,每種Logger都可以通過配置使用控制檯或者檔案輸出日誌內容 Logback是log4j框架的作者開發的新一代日誌框架,它效率更高、能夠適

Mac自帶Apache搭建PHP開發環境PHP和MySQL統一utf8卻亂碼

1.新建查詢: 通過資料庫命令列或視覺化介面新建查詢: show variables like '%char%'; 如果看到查詢結果的value均為latin1,則繼續進行下面操作,否則繼續排查其它原因 2.檔案拷貝: 關閉資料庫服務 命令列open /usr/local/

基於visual studio 2017 以及cubemx 搭建stm32的開發環境2

@param imp fin print set 分享 end spa 分享圖片 主要解決 vs2017中,printf無法打印數據的問題。 在keil環境下正常使用printf功能,但是以下的重定向代碼在vs2017下使用不了: #ifdef __GNUC__ /*

搭建常見的開發環境Gitlab搭建

大家常聽說Git、Github、Gitlab,很多人對著三個詞很懵逼,分別講一下這三個是什麼意思。Git是Linus Torvalds為了幫助管理Linux 核心開發而開發的一個開放原始碼的版本控制軟體。Github是一個網站,提供給使用者空間建立git倉儲,儲存使用者的一些

Eclipse下搭建安卓開發環境初步

Eclipse下搭建安卓開發環境 一、準備工作 (需要哪些東西,怎麼下載) 搭建開發環境需要下載三個檔案:eclipse安裝包、ADT和SDK。 必備知識: Android從誕生到今天,已經發布了多個版本,Android的軟體開發過程需要相應庫

ubuntu下搭建android開發環境ubuntu安裝搜狗輸入法by 星空武哥

      剛安裝完的ubuntu系統預設的鍵盤輸入方式是IBus,但是作為android開發的ubuntu“系統鍵盤輸入方式系統”是不支援Ibus的,所以我們要安裝搜狗輸入法。 安裝搜狗

搭建自己的部落格:簡單搭建首頁和詳情頁

上一篇我們建立了部落格表和標籤表以及超級使用者,那如何將建立的部落格通過網頁顯示出來呢?‘我們簡單的建立首頁和詳情頁。 1、新建html介面 首先建立在blog app下建立一個templates資料夾,這個資料夾用來放置前端頁面,注意資料夾名字必須是templates。 建立blog_list.htm

搭建自己的博客:簡單搭建首頁和詳情頁

title lose add 刷新 cti you urn http eight 上一篇我們創建了博客表和標簽表以及超級用戶,那如何將創建的博客通過網頁顯示出來呢?‘我們簡單的創建首頁和詳情頁。 1、新建html界面 首先創建在blog app下創建一個templates文

0到1使用Kubernetes系列——使用Ansible安裝Kubernetes叢集

上一篇文章《從0到1使用Kubernetes系列(二):安裝工具介紹》中,說到了Ansible的功能以及使用Ansible進行叢集部署的優勢,接下來將在本文中介紹如何通過Virtualbox + Vagrant啟動CentOS虛擬機器,並且使用ansible指令碼在虛擬機器中搭建kubern

visual studio 2013上搭建arm交叉編譯環境Visual studio2013中Cygwin工程的建立

        前兩篇文章已經介紹了在vs上搭建arm環境的準備工作。 http://blog.csdn.net/water1209/article/details/50926869 http://blog.csdn.net/water1209/article/detail

[虛擬機器VM][Ubuntu12.04]搭建Hadoop完全分散式環境(終篇)

接前兩篇,這是最終篇,前面的準備工作都完成了之後,我們開始安裝和部署hadoop 安裝和配置Hadoop hadoop叢集中每臺機器的配置都基本相同,我們先配置好master,然後複製到slave1和slave2上 1、下載並解壓,並重命名目錄

搭建 webpack、react 開發環境

 基本介紹   Webpack 是一個前端資源載入/打包工具。它將根據模組的依賴關係進行靜態分析,然後將這些模組按照指定的規則生成對應的靜態資源,它可以將多種靜態資源 JavaScript、css、less 等轉換成一個靜態檔案,減少了頁面的請求。 React