最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

webpack.config.js文件通常放在項目的根目錄中,它本身也是一個標準的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可以是個字符串或數(shù)組或者是對象。

當entry是個字符串的時候,用來定義入口文件:

entry: './js/main.js'

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

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

當entry是個對象的時候,我們可以將不同的文件構建成不同的文件,按需使用,比如在我的hello頁面中只要\引入hello.js即可:

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

2.output

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

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

當我們在entry中定義構建多個文件時,filename可以對應的更改為[name].js用于定義不同文件構建后的名字。

3.module

關于模塊的加載相關,我們就定義在module.loaders中。這里通過正則表達式去匹配不同后綴的文件名,然后給它們定義不同的加載器。比如說給less文件定義串聯(lián)的三個加載器(!用來定義級聯(liá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時自動處理為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來的文件會內(nèi)聯(lián)到 js bundle中。如果我們需要把保留require的寫法又想把css文件單獨拿出來,可以使用下面提到的[extract-text-webpack-plugin]插件。

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

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

4.resolve

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

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

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

6.externals

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

 externals: {
  "jquery": "jQuery"
 }

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

7.context

當我們在require一個模塊的時候,如果在require中包含變量,像這樣:

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

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

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

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

于是這個時候為了更好地配合wenpack進行編譯,我們可以給它指明路徑,像在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)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • js引擎垃圾回收機制示例詳解

    js引擎垃圾回收機制示例詳解

    最近看到一些面試的回顧,不少有被面試官問到談談JS垃圾回收機制,下面這篇文章主要給大家介紹了關于js引擎垃圾回收機制的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-01-01
  • 教你javascript如何獲取對象的key和value

    教你javascript如何獲取對象的key和value

    獲取對象所有key的方法,需要使用?Object.keys(obj)?方法,Object.keys(obj)方返回一個數(shù)組,這個數(shù)組包含obj對象中的所有key,這篇文章主要介紹了javascript如何獲取對象的key和value,需要的朋友可以參考下
    2022-12-12
  • JS 對輸入框進行限制(常用的都有)

    JS 對輸入框進行限制(常用的都有)

    本文為大家介紹下使用js對輸入框進行限制:文本框只能輸入數(shù)字代碼、只能輸入數(shù)字、只能輸入字母和漢字、只能輸入英文字母和數(shù)字等等,還有很多,感興趣的可以學習下
    2013-07-07
  • TypeScript中使用類型斷言的幾種方式分享

    TypeScript中使用類型斷言的幾種方式分享

    在TypeScript中,類型斷言用于告訴編譯器某個變量的類型,這在我們確定變量的類型比編譯器更準確時非常有用,本文給大家分享了幾種TypeScript中使用類型斷言方式,需要的朋友可以參考下
    2023-09-09
  • JavaScript如何將后端獲取到的byte數(shù)組轉(zhuǎn)為文件

    JavaScript如何將后端獲取到的byte數(shù)組轉(zhuǎn)為文件

    這篇文章主要給大家介紹了關于JavaScript如何將后端獲取到的byte數(shù)組轉(zhuǎn)為文件的相關資料,文中通過代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2024-04-04
  • bootstrap paginator分頁插件的兩種使用方式實例詳解

    bootstrap paginator分頁插件的兩種使用方式實例詳解

    Bootstrap Paginator是一款基于Bootstrap的js分頁插件,下面通過本文給大家介紹bootstrap paginator分頁插件的兩種使用方式,一起看看吧
    2017-11-11
  • layer.confirm取消按鈕綁定事件的方法

    layer.confirm取消按鈕綁定事件的方法

    今天小編就為大家分享一篇layer.confirm取消按鈕綁定事件的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-08-08
  • javascript原型鏈繼承用法實例分析

    javascript原型鏈繼承用法實例分析

    這篇文章主要介紹了javascript原型鏈繼承用法,實例分析了javascript原型鏈繼承中的技巧與相關注意事項,非常具有實用價值,需要的朋友可以參考下
    2015-01-01
  • JS實現(xiàn)控制表格單元格垂直對齊的方法

    JS實現(xiàn)控制表格單元格垂直對齊的方法

    這篇文章主要介紹了JS實現(xiàn)控制表格單元格垂直對齊的方法,涉及javascript操作表單元素樣式的技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-03-03
  • Flexible.js可伸縮布局實現(xiàn)方法詳解

    Flexible.js可伸縮布局實現(xiàn)方法詳解

    這篇文章主要介紹了Flexible.js可伸縮布局實現(xiàn)方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-11-11

最新評論

南陵县| 桃园市| 日土县| 高阳县| 胶南市| 定陶县| 永平县| 呼和浩特市| 西昌市| 崇州市| 大庆市| 绥芬河市| 神农架林区| 千阳县| 陕西省| 金坛市| 吉木乃县| 铜川市| 平舆县| 清远市| 丘北县| 米林县| 临朐县| 太原市| 海口市| 城口县| 新巴尔虎右旗| 西峡县| 乌兰察布市| 图们市| 襄垣县| 成武县| 永胜县| 郓城县| 县级市| 鞍山市| 南投县| 阿尔山市| 玉溪市| 永新县| 信阳市|