webpack核心概念

來源:互聯網
上載者:User

標籤:ref   使用   java   地方   檔案   html   功能   get   目標   

一、webpack四個核心概念1、入口【Entry】

webpack將建立所有應用程式 依賴關係圖表。圖表的起點被稱之為 入口起點。入口起點告訴webpack從哪裡開始,並遵循著依賴關係圖表知道打包什麼。可以將您的應用入口起點認為是跟上下文或app的第一個開機檔案。

const config = {  entry: {    app: ‘./src/app.js‘  }}module.exports = config;
2、出口【Output】

將所有資源打包在一起,仍然告訴webpack在哪裡打包我們的應用,即將打包資源輸出到什麼地方。

const config = {  entry: {    app: ‘./src/app.js‘  },  output: {    filename: ‘webpack.bundle.js‘,    path: ‘./dist‘  }}module.exports = config;
3、載入器【Loader】

webpack的目標是,讓項目中的所有資源都成為webpack的關注點,而瀏覽器不需要考慮這些(這並不意味著資源都必須打包在一起)。webpack把每個檔案(.css, .html, .scss, .jpg, .etc)都作為模組處理。然而webpack只瞭解JavaScript,所有需要載入器來處理其它類型的檔案。
因為檔案已被添加到了依賴圖表,所有webpack載入器會將這些檔案轉換為模組。
loader屬性要實現的兩個目標:
(1)識別出應該被特定的載入器轉換的檔案;
(2)轉換能夠被添加到依賴圖表的檔案(並且最終打包)

const config = {  entry: {    app: ‘./src/app.js‘  },  output: {    filename: ‘webpack.bundle.js‘,    path: ‘./dist‘  },  module: {    loaders: [      {        test: /\.(js|jsx)$/,        loader: ‘babel-loader‘      },      {        test: /\.css$/,        loaders: [‘style‘, ‘css‘]      }    ]  }}module.exports = config;

loader的兩個必選屬性test和loader告訴了webpack如下行為:webpack編譯器,當你碰到在require()/import語句中被解析為.js.jsx的路徑時,在你把它們添加並打包之前,要先使用babel-loader去轉換。同理,css也是這個樣子,只不過使用的loader模組不同。

4、外掛程式【Plugins]

載入器僅基於單個檔案執行轉換,外掛程式最常用於(但不限於)在打包模組的“編譯”和“組塊”時執行操作和自訂功能。webpack的外掛程式系統極其強大和可定製。
為了使用外掛程式,需要require它們,並且把它們添加到plugins數組。多數外掛程式可以通過potion來自訂。由於你可以在一個配置多次使用外掛程式用於不同的目的,因此你需要使用new來建立外掛程式的執行個體,並且調用外掛程式。

const HtmlWebpackPlugin = require(‘html-webpack-plugin‘);const htmlWP = new HtmlWebpackPlugin({template: ‘./src/index.html‘});const config = {  entry: {    app: ‘./src/app.js‘  },  output: {    filename: ‘webpack.bundle.js‘,    path: ‘./dist‘  },  module: {    loaders: [      {        test: /\.(js|jsx)$/,        loader: ‘babel-loader‘      },      {        test: /\.css$/,        loaders: [‘style‘, ‘css‘]      }    ]  },  plugins: [    htmlWP  ]}module.exports = config;
二、webpack解析三種檔案路徑

(1)絕對路徑
(2)相對路徑
(3)模組路徑

webpack核心概念

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.