中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

webpack打包layui的實現過程

發布時間:2021-08-16 23:30:09 來源:億速云 閱讀:272 作者:chen 欄目:開發技術

這篇文章主要介紹“webpack打包layui的實現過程 ”,在日常操作中,相信很多人在webpack打包layui的實現過程 問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”webpack打包layui的實現過程 ”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

總的來說打包webpack打包layui要解決幾個問題:

1、解決引入layui-src報錯的問題

2、layui插件的打包方式

3、解決打包后樣式不生效的問題

解決上面幾個問題,基本就能成功打包了

首先安裝layui(推薦:layui教程)

npm i layui-src

截至到我安裝時的版本是 2.3.0

包本身的一些問題仍沒有解決,這里需要收到更正

到安裝目錄下(/node_modules/layui-src/package.json),修改package.json的main字段為"main": "dist/layui.js",

相當于給當前包指定入口文件,這個解決了之前說的問題1。

接下來問題2:

也是比較最關鍵的地方,是靜態打包插件還是沿用layui自身的按需加載呢

我最終采取的是沿用ayui原有的按需加載的方式,理由無它,省事!

因為這樣我僅需要關心引入layui即可,插件無需我管理,而且還能減小打包后的文件大小,當然最大的原因還是我懶

決定怎么做之后就可以引入layui了

import 'layui-src'layui.config({  dir: '/dist/'})

后面的layui.config是全局配置,dir目錄之告訴layui它的插件的位置,這個目錄是入口文件layui.js的所在位置,這點需要自己理解清楚,配置錯誤就會看到瀏覽器加載諸如layer.js等插件時的404錯誤

問題3,css的引入

import 'layui-src/src/css/layui.css'

這里是耗費我時間最久的地方,看,我這里引入的是src目錄下的layui.css不是之前的dist目錄,原因是我做了一些修改和定制

搜索url關鍵字,將文件里的諸如url(”../font/iconfont.eot?v=230“)去掉引號,改成url(../font/iconfont.eot?v=230),后續配合webpack里的url-loader

將字體文件靜態化,其他的樣式有需要的也可自己定制

這里說下很多人都遇到的樣式不生效問題,其實很簡單,是webpack的配置問題

css-loader默認會把css自定義樣式名哈希化,防止重名,因此打包后的樣式名字都變了……找了半天打開調試才發現這個問題

解決方案有兩種,一種是在js里使用css,最后渲染會同步哈希化(我猜的,懶的驗證……),第二,不讓webpack改名字,保持原有的樣式名

果斷采取第二種,懶得折騰了,配置如下

{    loader: 'css-loader',    options: {        modules: true,        getLocalIdent: (context, localIdentName, localName, options) = >{            return localName        }    }},

另外需注意css-loader和file-loader里的publicPath,這里打開調試頁面看下會比較清楚,如果404了,就面向錯誤編程

const webpack = require('webpack')module.exports = {  entry: {    home: './static/js/home.js',    download: './static/js/download.js',  },  output: {    path: __dirname + '/dist',    filename: '[name].bundle.js',  },  module: {    rules: [      {        test: /\.(otf|eot|svg|ttf|woff|woff2)$/,        use: [          {            loader: 'url-loader',            options: {              name: '[name].[ext]',// 打包后的文件名稱              outputPath: '', // 默認是dist目錄              publicPath: '../font/', // 圖片的url前面追加'../font'              useRelativePath: true, // 使用相對路徑              limit: 50000 // 表示小于1K的圖片會被轉化成base64格式            }          }        ]      },      {        test: /\.(jpe?g|png|gif|svg)$/i,        use: [          {            loader: 'file-loader',            options: {              name: '[hash:3]_[name].[ext]',// 打包后的文件名稱              outputPath: '',              publicPath: '../img/',              useRelativePath: true            }          }        ]      },      {        test: /\.css$/,        use: [          { loader: 'style-loader' },          {            loader: 'css-loader',            options: {              modules: true,              getLocalIdent: (context, localIdentName, localName, options) => {                return localName              }            }          },        ]      },      { test: /\.js$/, exclude: /node_modules/, use: 'babel-loader' },    ]  },  plugins: [    new webpack.ProvidePlugin({      $: 'jquery',      jQuery: 'jquery',      "window.jQuery": "jquery"    })  ],  mode: 'development'}

到此,關于“webpack打包layui的實現過程 ”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

克山县| 宁阳县| 台南县| 宁明县| 宁乡县| 武陟县| 来安县| 财经| 上思县| 岳阳市| 乌拉特中旗| 鲁甸县| 崇阳县| 吉隆县| 延寿县| 定南县| 喜德县| 兴海县| 高尔夫| 肥乡县| 霍邱县| 嵊州市| 九江县| 将乐县| 穆棱市| 洪洞县| 盐山县| 馆陶县| 杂多县| 阆中市| 济阳县| 阜平县| 松滋市| 甘南县| 自贡市| 盐城市| 错那县| 宿州市| 甘洛县| 溧水县| 全州县|