Home Web Front-end Layui Tutorial Webpack packaging layui implementation steps

Webpack packaging layui implementation steps

Nov 23, 2019 pm 05:12 PM
layui webpack

Webpack packaging layui implementation steps

In general, there are several problems to be solved when packaging webpack and layui:

1. Solve the problem of error reporting when introducing layui-src

2. Packaging method of layui plug-in

3. Solve the problem that the style does not take effect after packaging

Solve the above problems and basically package successfully

First install layui (recommended :layui tutorial

npm i layui-src

As of the time of my installation, the version was 2.3.0

Some problems with the package itself are still unresolved, and corrections need to be received here

Go to the installation directory (/node_modules/layui-src/package.json) and modify the main field of package.json to "main": "dist/layui.js",

is equivalent to giving The current package specifies the entry file, which solves the problem 1 mentioned before.

Next question 2:

is also the most critical point. Should we statically package the plug-in or use layui's own on-demand loading?

I In the end, we adopted ayui’s original on-demand loading method for no other reason than to save trouble!

Because I only need to worry about introducing layui, the plug-in does not need to be managed by me, and it can also reduce the size of the packaged file. Of course, the biggest reason is that I am lazy

After deciding what to do You can introduce layui

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

The following layui.config is the global configuration. The dir directory tells layui the location of its plug-ins. This directory is the location of the entry file layui.js.
This is needed If you understand it clearly, if you configure it incorrectly, you will see a 404 error when the browser loads plug-ins such as layer.js

Question 3, the introduction of css

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

Here is What took me the longest time is, look, what I introduced here is layui.css in the src directory, not the previous dist directory. The reason is that I made some modifications and customizations.

Search for url keywords and change the file For example, remove the quotation marks in url("../font/iconfont.eot?v=230") and change it to url(../font/iconfont.eot?v=230), and then cooperate with the url-loader# in webpack.

##Make the font file static, and you can customize other styles if necessary

Here is the problem that many people encounter when the style does not take effect. In fact, it is very simple. It is a webpack configuration problem.

css-loader will hash the css custom style name by default to prevent duplicate names, so the packaged style names have changed... I found this problem after searching for a long time and opening debugging

There are two solutions. One is to use css in js, and the final rendering will be hashed synchronously (I guess, lazy verification...). The second is to prevent webpack from changing the name and keep the original style name.

Decisively adopt the second option, too lazy to bother, the configuration is as follows

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

In addition, you need to pay attention to the publicPath in css-loader and file-loader. It will be clearer if you open the debugging page here. 404, just program for errors

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'
}

The above is the detailed content of Webpack packaging layui implementation steps. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undress AI Tool

Undress AI Tool

Undress images for free

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Peak: How To Revive Players
1 months ago By DDD
PEAK How to Emote
4 weeks ago By Jack chen

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to get form data in layui How to get form data in layui Apr 04, 2024 am 03:39 AM

layui provides a variety of methods for obtaining form data, including directly obtaining all field data of the form, obtaining the value of a single form element, using the formAPI.getVal() method to obtain the specified field value, serializing the form data and using it as an AJAX request parameter, and listening Form submission event gets data.

How to set up jump on layui login page How to set up jump on layui login page Apr 04, 2024 am 03:12 AM

Layui login page jump setting steps: Add jump code: Add judgment in the login form submit button click event, and jump to the specified page through window.location.href after successful login. Modify the form configuration: add a hidden input field to the form element of lay-filter="login", with the name "redirect" and the value being the target page address.

How to transfer data in layui How to transfer data in layui Apr 26, 2024 am 03:39 AM

The method of using layui to transmit data is as follows: Use Ajax: Create the request object, set the request parameters (URL, method, data), and process the response. Use built-in methods: Simplify data transfer using built-in methods such as $.post, $.get, $.postJSON, or $.getJSON.

How layui implements self-adaptation How layui implements self-adaptation Apr 26, 2024 am 03:00 AM

Adaptive layout can be achieved by using the responsive layout function of the layui framework. The steps include: referencing the layui framework. Define an adaptive layout container and set the layui-container class. Use responsive breakpoints (xs/sm/md/lg) to hide elements under specific breakpoints. Specify element width using the grid system (layui-col-). Create spacing via offset (layui-offset-). Use responsive utilities (layui-invisible/show/block/inline) to control the visibility of elements and how they appear.

What is the difference between layui and vue? What is the difference between layui and vue? Apr 04, 2024 am 03:54 AM

The difference between layui and Vue is mainly reflected in functions and concerns. Layui focuses on rapid development of UI elements and provides prefabricated components to simplify page construction; Vue is a full-stack framework that focuses on data binding, component development and state management, and is more suitable for building complex applications. Layui is easy to learn and suitable for quickly building pages; Vue has a steep learning curve but helps build scalable and easy-to-maintain applications. Depending on the project needs and developer skill level, the appropriate framework can be selected.

What language is layui framework? What language is layui framework? Apr 04, 2024 am 04:39 AM

The layui framework is a JavaScript-based front-end framework that provides a set of easy-to-use UI components and tools to help developers quickly build responsive web applications. Its features include: modular, lightweight, responsive, and has complete documentation and community support. layui is widely used in the development of management backend systems, e-commerce websites, and mobile applications. The advantages are quick start-up, improved efficiency, and easy maintenance. The disadvantages are poor customization and slow technology updates.

What does layui mean? What does layui mean? Apr 04, 2024 am 04:33 AM

layui is a front-end UI framework that provides a wealth of UI components, tools and functions to help developers quickly build modern, responsive and interactive web applications. Its features include: flexible and lightweight, modular design, rich components, Powerful tools and easy customization. It is widely used in the development of various web applications, including management systems, e-commerce platforms, content management systems, social networks and mobile applications.

What technology is layui based on? What technology is layui based on? Apr 28, 2024 pm 09:48 PM

Layui is based on HTML, CSS, JavaScript, jQuery, Less and Grunt technologies and offers cross-browser compatibility, high customizability, ease of use, rich components and active community support.

See all articles