如今咱們寫了一個庫html
配置libraryTarget: ’umd‘支持上述的前三種方法,對於最後一種使用辦法,能夠經過library: 'library'綁定到一個全局變量library上node
這裏能夠綁定到window或者this或者global上等react
有時候須要在本身的庫中引入別人的庫,作了一些處理。而後某個用戶使用了咱們的庫,又使用了咱們的庫中使用的庫,那麼就會重複引入兩次一個庫。webpack
commonjs:'lodash'表示在commonjs語法中,引入名字必須是lodash
root:'_'表示,使用script標籤引入的時候,可使用_使用
一般狀況下,若是沒有特殊說明,能夠直接這麼設置:
web
externals表示的是,不打包到庫裏面,只有在用戶使用的時候,才引入和打包typescript
而後到cmd上 npm adduser
而後npm publish
把包發佈到上面就能夠了。npm
當咱們訪問一個網站,第一次訪問沒有問題,後續掛掉了,能從緩存中讀取出來這個網頁。json
以上是新版本ts推薦的方式後端
須要配置下轉發請求的地址:
api
當咱們請求/react/api下接口的時候,都幫我代理到http://xxxxxx下
(要注意的是,這個devServer只在開發的時候有,線上的時候不存在)
必須得設置inde: ''或者false纔會生效
以/api開頭的都去掉
當識別到請求的是一個html文件的時候,直接跳過本次請求
使用react路由去訪問/list的時候,devServer覺得你訪問的是一個/list.html頁面,結果服務器沒有這個頁面,致使了錯誤,
特別須要處理的地址的時候,能夠這麼配置
跳轉到哪兒,還能夠這樣配置
其餘須要注意:
項目上線後,可能會遇到相似的問題,須要後端的小夥伴配置上述相似的跳轉規則
上述表示,使用Airbnb的eslint規範,同時也忽略無狀態class和jsx的提示
webpack配置使得eslint生效(一般不會這麼處理,由於會影響打包的速度)
上述配置了eslint-loader,而且自動處理一些簡單的代碼,注意放在最早處理,若是放錯能夠強制處理
打包出問題的時候,直接在瀏覽器上彈出一層錯誤提示
例如:
上述操做主要:將react等這三個庫,打包到vendors.dll.js中,而且暴露一個全局變量名vendors
單獨對第三方包打包,可是如今全局使用不了vendors
而後在配置文件中:
往index.html中添加
再次打包打開,引入成功
和配置
使得webpack打包的時候,會根據咱們打包出來的第三方包和打包分析出來的vendors.manifest.json這個文件,當打包遇到使用了這個映射文件中的第三方包的時候,就會知道,沒有必要吧這個第三方模塊打包了,直接去底層全局變量拿出來使用。
而後須要不斷的配置
解決辦法:
對於源代碼不適用的包,能夠經過tree shaking閹割,或者不引入使用
須要將來在實戰中不斷積累經驗
支持js和jsx(可是在組件中引入的時候要加上jsx,不然報錯)
上述優化
使得支持(後綴爲js或jsx)
引入一個文件夾名稱的時候,首先默認找到文件夾下的index.js(會影響打包速度)
引入一個不存在文件(或者別名),會報錯,解決辦法
繼續優化,每一個頁面須要引入的包,使用chunks屬性
繼續優化,每次添加一個就須要複製一個相似的代碼,使用一個方法根據多少個入口進行生成(包括對優化1中的代碼提取結合進來)