基於webpack實現多html頁面開發框架五 開發環境配置 babel配置

来源:https://www.cnblogs.com/lisong/archive/2019/12/04/11983854.html
-Advertisement-
Play Games

一、解決什麼問題 1、開發環境js、css不壓縮,可在瀏覽器選中代碼調試 2、開發環境運行http服務指向打包後的文件夾 3、babel輸出瀏覽器相容的js代碼 二、需要安裝的包 babel-loader:輸出瀏覽器相容的js代碼;命令:<!--?xml version="1.0" encoding ...


一、解決什麼問題

     1、開發環境js、css不壓縮,可在瀏覽器選中代碼調試

     2、開發環境運行http服務指向打包後的文件夾

     3、babel輸出瀏覽器相容的js代碼

二、需要安裝的包

   babel-loader:輸出瀏覽器相容的js代碼;命令: npm install --save-dev babel-loader @babel/core @babel/preset-env

   webpack-dev-server: 快速搭建本地運行環境;命令: npm install webpack-dev-server --save-dev

三、babe-loader配置

  1、在webpack.config.js文件中新增rule,代碼如下:

1  {
2                 test: /\.m?js$/,
3                 exclude: /(node_modules|bower_components)/,//不包含node_modules、bower_components
4                 use: {
5                   loader: 'babel-loader',
6                 }
7   },

  2、在根目錄下新增babel配置文件.babelrc,代碼如下:

1 {
2     "presets": ["@babel/env"]
3 }

四、開發環配置

  1、根目錄下新建webpack.dev.conf.js文件,代碼如下,代碼中有註釋,可根據下麵的代碼自己調試:

 1 const path = require("path");
 2 const merge = require("webpack-merge");
 3 const webpackConfigBase = require("./webpack.config.js");
 4 
 5 
 6 const webpackConfigDev = {
 7     devServer: {
 8         contentBase: path.join(__dirname, 'dist'),
 9         // publicPath: '/',
10         // host: 'local.pcteam.com.cn',
11         // host: '0.0.0.0' || 'config.dev.host', //手機聯測使用
12         port: '8000',
13         overlay: true, // 瀏覽器頁面上顯示錯誤
14         open: true, // 開啟瀏覽器
15         // stats: "errors-only", //stats: "errors-only"表示只列印錯誤:
16         // hot: true, // 開啟熱更新
17         // inline: true,
18         //伺服器代理配置項
19         disableHostCheck: true,
20         proxy: {
21             '/api': {
22                 target: 'http://test.pcteam.com.cn',
23                 changeOrigin: true, // 如果介面跨域,需要進行這個參數配置
24                 secure: false,
25                 // pathRewrite: {
26                 //     '^/files': ''
27                 // }
28                 //修改服務端返回的cookie路徑
29                 // cookiePathRewrite: {
30                 //     '///': '///',
31                 // },
32                 //修改服務端返回的cookie domain
33                 // cookieDomainRewrite: {
34                 //     'unchanged.domain': 'unchanged.domain',
35                 //     'pcteam.com': 'local.pcteam.com:8000',
36                 //     '*': '',
37                 // },
38             },
39         },
40     },
41     plugins: [
42         //熱更新 hot: true 需要同時配置
43         // new webpack.HotModuleReplacementPlugin(),
44     ],
45     // 生成map格式的文件,裡面包含映射關係的代碼,如果想查看在源文件中錯誤的位置,則需要使用映射關係,找到對應的位置。
46     devtool: 'source-map', 
47 }
48 
49 //合併基礎配置和dev配置
50 module.exports = merge(webpackConfigBase, webpackConfigDev)

五、開發環配置

    在package.json中找到scripts,進行環境區分和配置:

    //正式打包發佈     "build":"cross-env webpack --mode=production",       //開發環境運行命令     "dev": "cross-env webpack-dev-server --mode=development --config webpack.dev.conf.js"          --mode指定當前運行的環境,如果是production環境webpack4.x會對js、css壓縮,如果是development則不壓縮,更多區別請查看文檔https://webpack.js.org/configuration/mode/             --config指定使用哪個配置文件運行             cross-env 為了相容windows環境,需要npm i --save-dev cross-env安裝       

六、測試

  1、運行npm run dev會在預設瀏覽器打開頁面,如下圖:

  

 

   2、修改js或css會自動刷新頁面

 

 

源碼地址:https://github.com/James-14/webpack4_multi_page_demo

寫的不對之處請大家批評指正~~~~!!!!!! 

 

文章原創,轉載請註明出處,謝謝!

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 假如有這樣一張表: 腳本如下: DROP TABLE IF EXISTS `jl_site_operation`;CREATE TABLE `jl_site_operation` ( `id` int(11) NOT NULL AUTO_INCREMENT, `site_id` int(11) DE ...
  • 文中使用mysql5.7 版本實現多實例,埠為3306和3307。 1、多實例本質在一臺機器上開啟多個不同的mysql服務埠(3306,3307),運行多個mysql服務進程,這些服務進程通過不同的socket監聽不同的服務埠來提供各自的服務; 多個實例共用一套mysql安裝程式,配置文件可以 ...
  • 轉載請標明出處:https://www.cnblogs.com/tangZH/p/11985745.html 有些手機中,給TextView設置lineSpacingExtra後會出現最後一行的文字也出現lineSpacingExtra,不是某些版本才會,這跟機型有關。 可以用下麵這種方法解決: ...
  • 作為JavaScript開發人員,NPM是我們一直使用的東西,並且我們的腳本在終端上連續運行。 如果我們可以節省一些時間呢? 1、直接從npm打開文檔 如果我們可以直接使用npm跳轉到軟體包的文檔怎麼辦? 2、打開bug頁面 為了以防萬一,我們想在程式包上提交一個錯誤。 如果有這個包的作者的鏈接,將 ...
  • 在web開發時,可能經常會用到sessionstorage存儲數據,存儲單個字元串數據變數時並不困難 var str = 'This is a string'; sessionstorage.setItem('param',str); 獲取sessionstorage var item = sess ...
  • js Brendan(布蘭登) Eich 輕量級的編程語言(ECMAscript5或6), 是一種解釋性腳本語言(代碼不進行預編譯), 主要用來向HTML頁面添加交互行為, 目前是互聯網上最流行的腳本語言, 支持面向對象、命令式和聲明式(如函數式編程)風格, JavaScript,他和Python一 ...
  • 事故起源於一個魔鬼測試人員,某天做網站UI優化的時候,突然甩了一個問題給我 第二列的數據是可以跳轉至其他頁面的,但是,魔鬼測試的電腦上,一直都有一條數據是與其他的樣式不同,於是便甩了這個問題給我,我一瞅,喲呵,還真是,而且不管如何F5,Ctrl + F5,都不能改變它變黑的事實,一時間都不敢回消息了 ...
  • 從輸入URL到頁面載入發生了什麼? 最近在進行前端性能優化方面的一些工作,發現前端性能方面太廣,不知道如何下手。參考了許多文章,發現最終都會歸咎於一個非常經典的問題: 從輸入URL到頁面載入發生了什麼? 通過連接這個過程,然後針對性地對每個過程進行優化,最終實現的就是我們的前端性能優化。本篇文章主要 ...
一周排行
    -Advertisement-
    Play Games
  • 概述:本文代碼示例演示瞭如何在WPF中使用LiveCharts庫創建動態條形圖。通過創建數據模型、ViewModel和在XAML中使用`CartesianChart`控制項,你可以輕鬆實現圖表的數據綁定和動態更新。我將通過清晰的步驟指南包括詳細的中文註釋,幫助你快速理解並應用這一功能。 先上效果: 在 ...
  • openGauss(GaussDB ) openGauss是一款全面友好開放,攜手伙伴共同打造的企業級開源關係型資料庫。openGauss採用木蘭寬鬆許可證v2發行,提供面向多核架構的極致性能、全鏈路的業務、數據安全、基於AI的調優和高效運維的能力。openGauss深度融合華為在資料庫領域多年的研 ...
  • openGauss(GaussDB ) openGauss是一款全面友好開放,攜手伙伴共同打造的企業級開源關係型資料庫。openGauss採用木蘭寬鬆許可證v2發行,提供面向多核架構的極致性能、全鏈路的業務、數據安全、基於AI的調優和高效運維的能力。openGauss深度融合華為在資料庫領域多年的研 ...
  • 概述:本示例演示了在WPF應用程式中實現多語言支持的詳細步驟。通過資源字典和數據綁定,以及使用語言管理器類,應用程式能夠在運行時動態切換語言。這種方法使得多語言支持更加靈活,便於維護,同時提供清晰的代碼結構。 在WPF中實現多語言的一種常見方法是使用資源字典和數據綁定。以下是一個詳細的步驟和示例源代 ...
  • 描述(做一個簡單的記錄): 事件(event)的本質是一個委托;(聲明一個事件: public event TestDelegate eventTest;) 委托(delegate)可以理解為一個符合某種簽名的方法類型;比如:TestDelegate委托的返回數據類型為string,參數為 int和 ...
  • 1、AOT適合場景 Aot適合工具類型的項目使用,優點禁止反編 ,第一次啟動快,業務型項目或者反射多的項目不適合用AOT AOT更新記錄: 實實在在經過實踐的AOT ORM 5.1.4.117 +支持AOT 5.1.4.123 +支持CodeFirst和非同步方法 5.1.4.129-preview1 ...
  • 總說周知,UWP 是運行在沙盒裡面的,所有許可權都有嚴格限制,和沙盒外交互也需要特殊的通道,所以從根本杜絕了 UWP 毒瘤的存在。但是實際上 UWP 只是一個應用模型,本身是沒有什麼許可權管理的,許可權管理全靠 App Container 沙盒控制,如果我們脫離了這個沙盒,UWP 就會放飛自我了。那麼有沒... ...
  • 目錄條款17:讓介面容易被正確使用,不易被誤用(Make interfaces easy to use correctly and hard to use incorrectly)限制類型和值規定能做和不能做的事提供行為一致的介面條款19:設計class猶如設計type(Treat class de ...
  • title: 從零開始:Django項目的創建與配置指南 date: 2024/5/2 18:29:33 updated: 2024/5/2 18:29:33 categories: 後端開發 tags: Django WebDev Python ORM Security Deployment Op ...
  • 1、BOM對象 BOM:Broswer object model,即瀏覽器提供我們開發者在javascript用於操作瀏覽器的對象。 1.1、window對象 視窗方法 // BOM Browser object model 瀏覽器對象模型 // js中最大的一個對象.整個瀏覽器視窗出現的所有東西都 ...