• webpack的安装及使用


     第一步:项目根目录安装 webpack

        

    npm config set registry https://registry.npm.taobao.org

    npm init npm i webpack D  

    第二步:根目录新建文件 webpack.config.js

    const path = require('path');
    var webpack = require('webpack');
    const MiniCssExtractPlugin = require('mini-css-extract-plugin');
    module.exports = {
        // webpack会根据mode进行对Js打包,development压缩,production下面自动压缩,亲测没有问题
        mode: 'development',
        entry: './index.js',
        output: {
            path: path.resolve(__dirname, 'dist'),
            filename: 'js/index.js'
        },
        module: {
            rules: [
                {
                    test: /.css$/,
                    use: [
                        {
                            loader: MiniCssExtractPlugin.loader,
                            options: {
                                publicPath: '../'  // 特别重要,否则css文件打包后其中引用的图片文件不正确
                            }
                        },
                        "css-loader"
                    ]}]
        },
        plugins:
            [
                new webpack.ProvidePlugin({
                    $: 'jquery',
                    jQuery: 'jquery'
                }),
                new MiniCssExtractPlugin({
                    filename: "style.css",
                }),//打包后的文件名
            ],
        watch: true   // 监听修改自动打包
    };
    View Code

    注意:webpack打包的时候,如果不做特殊处理,那么webpack会把css,less,image等等都打包到js文件中,而这会导致一些bug

    是为了解决:样式是通过js 动态添加 style 标签引入的问题,因为动态添加所以css动画会有一个不必要的闪烁效果,初步估计是因为:css的stlye应该先被渲染。所以要把css抽离出来。那么就引入了MiniCssExtractPlugin.loader这个插件。

    npm i MiniCssExtractPlugin.loader

    如果需要集成jquery 也需要通过命令 npm i jquery 来安装

    第三步:在根目录新建index.js 用于放入打包的文件,也就是 entry文件

    //放入需要打包的文件,  ./代表根目录
    import "./css/ss.css"

       import $ from 'jquery' //表示在node_modules引入这个模块
       window.$ = $
       window.jQuery = $

     package.json文件

    {
      "name": "szsearch",
      "version": "4.43.0",
      "description": "wode",
      "main": "index.js",
      "directories": {
        "lib": "lib"
      },
      /*
     webpack是webpack自带的一条打包命令,是最基本的打包命令。
    npm run webpack,则是在package.json文件中有一个script配置项,在这个script里面自定义的一条命令,它通过npm来运行。如果不配置,你将无法打包
      */
      "scripts": {
        "start": "webpack",
        "server": "webpack-dev-server --open",
        "build": "set NODE_ENV=production && webpack --config ./webpack.production.config.js --progress"
      },
      "author": "",
      "license": "ISC",
      "devDependencies": {
        "css-loader": "^3.5.3",
        "style-loader": "^1.2.0",
        "webpack": "^4.43.0",
        "webpack-cli": "^3.3.11"
      },
      "dependencies": {
        "extract-text-webpack-plugin": "^4.0.0-beta.0",
        "jquery": "^3.5.0"
      }
    }
    

     打包效果:

      

  • 相关阅读:
    VMWare ESX Server
    ubuntu 13.04 xrdp 远程桌面连接问题[转载]
    wget 使用技巧
    C# 跨线程调用问题
    ASP.NET WEB API 返回JSON 出现2个双引号问题
    ASP.NET MVC 4 中Razor 视图中JS无法调试
    Android 如何修改gen下包的名字
    打开AVD时报”Data partition already in use. Changes will not persist!”
    Android 将APK文件安装到AVD中并分析其界面结构
    Android 实现界面(Activity)的跳转
  • 原文地址:https://www.cnblogs.com/fogwang/p/12785628.html
Copyright © 2020-2023  润新知