亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

基于webpack.config.js 參數(shù)詳解

 更新時(shí)間:2018年03月20日 08:29:34   作者:zaichuanguanshui  
下面小編就為大家分享一篇基于webpack.config.js 參數(shù)詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧

webpack.config.js文件通常放在項(xiàng)目的根目錄中,它本身也是一個(gè)標(biāo)準(zhǔn)的Commonjs規(guī)范的模塊。

var webpack = require('webpack');
module.exports = {
 entry: [
  'webpack/hot/only-dev-server',
  './js/app.js'
 ],
 output: {
  path: './build',
  filename: 'bundle.js'
 },
 module: {
  loaders: [
  { test: /\.js?$/, loaders: ['react-hot', 'babel'], exclude:  /node_modules/ },
  { test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader'},
  { test: /\.css$/, loader: "style!css" },
  {test: /\.less/,loader: 'style-loader!css-loader!less-loader'}
  ]
 },
 resolve:{
  extensions:['','.js','.json']
 },
 plugins: [
  new webpack.NoErrorsPlugin()
 ]
};

1.entry

entry可以是個(gè)字符串或數(shù)組或者是對(duì)象。

當(dāng)entry是個(gè)字符串的時(shí)候,用來定義入口文件:

entry: './js/main.js'

當(dāng)entry是個(gè)數(shù)組的時(shí)候,里面同樣包含入口js文件,另外一個(gè)參數(shù)可以是用來配置webpack提供的一個(gè)靜態(tài)資源服務(wù)器,webpack-dev-server。webpack-dev-server會(huì)監(jiān)控項(xiàng)目中每一個(gè)文件的變化,實(shí)時(shí)的進(jìn)行構(gòu)建,并且自動(dòng)刷新頁面:

entry: [
  'webpack/hot/only-dev-server',
  './js/app.js'

當(dāng)entry是個(gè)對(duì)象的時(shí)候,我們可以將不同的文件構(gòu)建成不同的文件,按需使用,比如在我的hello頁面中只要\引入hello.js即可:

 entry: {
  hello: './js/hello.js',
  form: './js/form.js'
 }

2.output

output參數(shù)是個(gè)對(duì)象,用于定義構(gòu)建后的文件的輸出。其中包含path和filename:

 output: {
  path: './build',
  filename: 'bundle.js'
 }

當(dāng)我們在entry中定義構(gòu)建多個(gè)文件時(shí),filename可以對(duì)應(yīng)的更改為[name].js用于定義不同文件構(gòu)建后的名字。

3.module

關(guān)于模塊的加載相關(guān),我們就定義在module.loaders中。這里通過正則表達(dá)式去匹配不同后綴的文件名,然后給它們定義不同的加載器。比如說給less文件定義串聯(lián)的三個(gè)加載器(!用來定義級(jí)聯(lián)關(guān)系):

module: {
 loaders: [
  { test: /\.js?$/, loaders: ['react-hot', 'babel'], exclude: /node_modules/ },
  { test: /\.js$/, exclude: /node_modules/, loader: 'babel-loader'},
  { test: /\.css$/, loader: "style!css" },
  { test: /\.less/, loader: 'style-loader!css-loader!less-loader'}
 ]
}

此外,還可以添加用來定義png、jpg這樣的圖片資源在小于10k時(shí)自動(dòng)處理為base64圖片的加載器:

{ test: /\.(png|jpg)$/,loader: 'url-loader?limit=10000'}

給css和less還有圖片添加了loader之后,我們不僅可以像在node中那樣require js文件了,我們還可以require css、less甚至圖片文件:

 require('./bootstrap.css');
 require('./myapp.less');
 var img = document.createElement('img');
 img.src = require('./glyph.png');

但是需要知道的是,這樣require來的文件會(huì)內(nèi)聯(lián)到 js bundle中。如果我們需要把保留require的寫法又想把css文件單獨(dú)拿出來,可以使用下面提到的[extract-text-webpack-plugin]插件。

在上面示例代碼中配置的第一個(gè)loaders我們可以看到一個(gè)叫做react-hot的加載器。我的項(xiàng)目是用來學(xué)習(xí)react寫相關(guān)代碼的,所以配置了一個(gè)react-hot加載器,通過它,可以實(shí)現(xiàn)對(duì)react組件的熱替換。我們已經(jīng)在entry參數(shù)中配置了webpack/hot/only-dev-server,所以我們只要在啟動(dòng)webpack開發(fā)服務(wù)器時(shí)開啟–hot參數(shù),就可以使用react-hot-loader了。在package.json文件中這樣定義:

"scripts": {
  "start": "webpack-dev-server --hot --progress --colors",
  "build": "webpack --progress --colors"
 }

4.resolve

webpack在構(gòu)建包的時(shí)候會(huì)按目錄的進(jìn)行文件的查找,resolve屬性中的extensions數(shù)組中用于配置程序可以自行補(bǔ)全哪些文件后綴:

 resolve:{
  extensions:['','.js','.json']
 }

然后我們想要加載一個(gè)js文件時(shí),只要require(‘common')就可以加載common.js文件了。

6.externals

當(dāng)我們想在項(xiàng)目中require一些其他的類庫或者API,而又不想讓這些類庫的源碼被構(gòu)建到運(yùn)行時(shí)文件中,這在實(shí)際開發(fā)中很有必要。此時(shí)我們就可以通過配置externals參數(shù)來解決這個(gè)問題:

 externals: {
  "jquery": "jQuery"
 }

這樣我們就可以放心的在項(xiàng)目中使用這些API了:var jQuery = require(“jquery”);

7.context

當(dāng)我們在require一個(gè)模塊的時(shí)候,如果在require中包含變量,像這樣:

require("./mods/" + name + ".js");

那么在編譯的時(shí)候我們是不能知道具體的模塊的。但這個(gè)時(shí)候,webpack也會(huì)為我們做些分析工作:

1.分析目錄:'./mods';

2.提取正則表達(dá)式:'/^.*.js$/';

于是這個(gè)時(shí)候?yàn)榱烁玫嘏浜蟱enpack進(jìn)行編譯,我們可以給它指明路徑,像在cake-webpack-config中所做的那樣(我們在這里先忽略abcoption的作用):

 var currentBase = process.cwd();
 var context = abcOptions.options.context ? abcOptions.options.context : 
 path.isAbsolute(entryDir) ? entryDir : path.join(currentBase, entryDir);

以上這篇基于webpack.config.js 參數(shù)詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Javascript 實(shí)現(xiàn)廣告后加載 可加載百度谷歌聯(lián)盟廣告

    Javascript 實(shí)現(xiàn)廣告后加載 可加載百度谷歌聯(lián)盟廣告

    本文主要介紹一種新的廣告后加載的方式,支持自定義HTML廣告、百度聯(lián)盟廣告和谷歌聯(lián)盟廣告。這種方式在頁面加載完成后執(zhí)行,不影響內(nèi)容的顯示,對(duì)用戶更加友好。
    2016-05-05
  • 一起來學(xué)習(xí)JavaScript的BOM操作

    一起來學(xué)習(xí)JavaScript的BOM操作

    這篇文章主要為大家詳細(xì)介紹了JavaScript BOM操作,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • 詳解JSON Web Token 入門教程

    詳解JSON Web Token 入門教程

    這篇文章主要介紹了詳解JSON Web Token 入門教程,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07
  • 通過seajs實(shí)現(xiàn)JavaScript的模塊開發(fā)及按模塊加載

    通過seajs實(shí)現(xiàn)JavaScript的模塊開發(fā)及按模塊加載

    seajs實(shí)現(xiàn)了JavaScript 的 模塊開發(fā)及按模塊加載。用來解決繁瑣的js命名沖突,文件依賴等問題,其主要目的是令JavaScript開發(fā)模塊化并可以輕松愉悅進(jìn)行加載。下面我們來一起深入學(xué)習(xí)下吧
    2019-06-06
  • JavaScript中的this陷阱的最全收集并整理(沒有之一)

    JavaScript中的this陷阱的最全收集并整理(沒有之一)

    這篇文章主要介紹了JavaScript中的this陷阱的最全收集,需要的朋友可以參考下
    2017-02-02
  • webpack的pitching loader詳解

    webpack的pitching loader詳解

    這篇文章主要介紹了webpack的pitching loader詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • JavaScript中對(duì)象介紹

    JavaScript中對(duì)象介紹

    這篇文章主要介紹了JavaScript中對(duì)象介紹,本文直接用實(shí)例講解對(duì)象的創(chuàng)建、刪除等操作,并總結(jié)了Object屬性、Property屬性,需要的朋友可以參考下
    2014-12-12
  • layui導(dǎo)航欄二級(jí)菜單不顯示問題及解決

    layui導(dǎo)航欄二級(jí)菜單不顯示問題及解決

    這篇文章主要介紹了layui導(dǎo)航欄二級(jí)菜單不顯示問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • webpack4 optimization使用總結(jié)

    webpack4 optimization使用總結(jié)

    這篇文章主要介紹了webpack4 optimization使用總結(jié),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • JavaScript使用canvas實(shí)現(xiàn)錨點(diǎn)摳圖功能

    JavaScript使用canvas實(shí)現(xiàn)錨點(diǎn)摳圖功能

    在日常的圖片處理中,我們經(jīng)常會(huì)遇到需要摳圖的情況,無論是為了美化照片、制作海報(bào),還是進(jìn)行圖片合成,摳圖對(duì)于我們來說也是一種很常用的功能了,今天就讓我們一起來看下怎么使用canvas來實(shí)現(xiàn)一個(gè)錨點(diǎn)摳圖功能
    2024-03-03

最新評(píng)論