国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

基于webpack.config.js 參數詳解

2019-11-19 14:08:20
字體:
來源:轉載
供稿:網友

webpack.config.js文件通常放在項目的根目錄中,它本身也是一個標準的Commonjs規范的模塊。

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可以是個字符串或數組或者是對象。

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

entry: './js/main.js'

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

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參數是個對象,用于定義構建后的文件的輸出。其中包含path和filename:

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

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

3.module

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

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來的文件會內聯到 js bundle中。如果我們需要把保留require的寫法又想把css文件單獨拿出來,可以使用下面提到的[extract-text-webpack-plugin]插件。

在上面示例代碼中配置的第一個loaders我們可以看到一個叫做react-hot的加載器。我的項目是用來學習react寫相關代碼的,所以配置了一個react-hot加載器,通過它,可以實現對react組件的熱替換。我們已經在entry參數中配置了webpack/hot/only-dev-server,所以我們只要在啟動webpack開發服務器時開啟

主站蜘蛛池模板: 平南县| 岑巩县| 浦城县| 灵川县| 财经| 汉寿县| 墨脱县| 元谋县| 河北省| 信阳市| 苍山县| 惠安县| 合肥市| 南汇区| 秦安县| 新野县| 略阳县| 司法| 郑州市| 汤原县| 洛浦县| 桐柏县| 陵水| 永州市| 华阴市| 托克托县| 永昌县| 贵南县| 双江| 玉门市| 洪雅县| 登封市| 南汇区| 玉树县| 丰城市| 双柏县| 开江县| 吴忠市| 伊宁县| 新化县| 海阳市|