zoukankan      html  css  js  c++  java
  • webpack的使用

    ---恢复内容开始---

    webpack主要处理新语法,但是浏览器不识别,用webpack前端工具,处理成浏览器认识的

    添加webpack的依赖
    npm init -y
    npm install webpack
    处理指定的文件,并且指定输出文件的目录和名字
    webpack .srcmain.js .distubdle.js

    使用的时候

    <script src="./dist/bundle.js"></script>

    实现webpack热部署,使用webpack-dev-server,注意本地项目中必须安装webpack

    需要配置文件

    指定配置文件的名字,webpack.config.js

    安装到工程开发依赖,使用的时候和webpack的命令是一样的。直接使用webpack-dev-server

    注意是在项目中本地安装,所以不能当做脚本命令直接在命令行置直接执行,只能全局安装才能

    在package.json配置脚本命令,scripts中设置,这样就可以直接命令行通过npm run dev执行webpack-dev-server

    "dev" : "webpack-dev-server"

    注意使用的时候安装webpack-dev-server到工程的本地目录

    cnpm i webpack-dev-server -D

    这种直接是工程的根目录,如果自己想访问打包后的bundle.js,直接访问 根目录/bundle.js

    热部署使用的时候使用的是根目录下的bundle.js,打包生成的bundle.js没有存在物理磁盘中,在内存中托管

    使用的时候直接

    <scripts src="/bundle.js"></scripts>

    所以配置文件中不需要output了。

    webpack-dev-server的配置参数

    自动打开浏览器的设置,还有指定端口3000,上来打开指定的目录src,加上--hot,局部更新,减少不必要重载,浏览器自动刷新
    "dev" : "webpack-dev-server --open --port 3000 --contentBase src --hot"

    还有一种直接在webpack.config.js中直接使用webpackServer配置

    安装在内存中生成页面的插件

    安装webpack插件

    cnpm i html-webpack-plugin -D

    htmlWebpackPlugin的插件:实现HTML文件加载到内存,自己处理bundle.js文件

    const path = require('path')
    
    const htmlWebpackPlugin = require('html-webpack-plugin')
    module.exports
    = { // 入口文件 entry: path.join(__dirname, './src/mian.js'), plugins: { new htmlWebpackPlugin({// template: path.join(__dirname,'./src/index.html'), filename: 'index.html' }) } }

    解决css会发生二次ajax请求

    直接导入样式,在main.js中

    import  './css/index.css'

    需要这种方式,就需要安装style-loader 和css-loader

    cnpm i style-loader css-loader -D

    打开配置文件,新增配置节点新增配置节点modules,有个rules属性,是个数组,数组中存放所有第三方文件的匹配和处理规则

      module: { //这个节点用于配置所有的第三方模块加载器
        rules: [ //匹配规则
          {
            test: /.css$/,
            use: ['style-loader', 'css-loader']
          },
        ]
      }

    多个loader的时候调用的规则是从右到左的形式,就是先调用后面的loader

    处理less文件.使用的时候的方式import  './css/index.less'

    安装插件

    安装less

    cnpm i less -D

    安装加载器

    cnpm i less-loader -D

      module: { //这个节点用于配置所有的第三方模块加载器
        rules: [ //匹配规则
          {
            test: /.css$/,
            use: ['style-loader', 'css-loader']
          },
          //less配置的形式
          {test: /.less$/, use: ['style-loader','css-loader','less-loader']},
        ]
      }

    处理scss文件

    import  './sass/index.sass'

    cnpm i node-sass -D

    cnpm i sass-loader -D

    配置新的loader

      module: { //这个节点用于配置所有的第三方模块加载器
        rules: [ //匹配规则
          {
            test: /.css$/,
            use: ['style-loader', 'css-loader']
          },
          //less配置的形式
          {test: /.less$/, use: ['style-loader','css-loader','less-loader']},
          {test: /.sass$/, use: ['style-loader','css-loader','sass-loader']},
        ]
      }

    webpack无法处理文件中的地址,无论是图片还是字体库,

    需要第三方的loader

    cnpm i file-loader

    cnpm i url-loader

    在配置文件中添加匹配规则

      module: { //这个节点用于配置所有的第三方模块加载器
        rules: [ //匹配规则
          {
            test: /.css$/,
            use: ['style-loader', 'css-loader']
          },
          //less配置的形式
          {test: /.less$/, use: ['style-loader','css-loader','less-loader']},
          {test: /.sass$/, use: ['style-loader','css-loader','sass-loader']},
          {test: /.(jpg|png|bmp|jpeg)$/,use: 'url-loader?limit=7632&name=[name].[ext]'} 
        ]
      }

    绿色部分是指当图片大小小于指定大小就会转成base64编码的图片,否则就是专成真正的URL地址,地址也会变,主要是防止文件名字的重复,红色是指不修改名字和文件后缀,正常不设置

    或者使用下面的形式,加上前缀hash值

    {test: /.(jpg|png|bmp|jpeg)$/,use: 'url-loader?limit=7632&name=[hash:8]-[name].[ext]'} 

    页面上引用字体图标

    安装cnpm i bootstrap -D

    在main.js中直接import  'bootstrap/dist/css/bootstrap.css'

    注意不写node_modules也行,前面不要加上/

    使用url-loader处理样式文件

    {test: /.(ttf|eot|woff|woff2)$/,use: 'url-loader'}

    注意package.json是json文件,不能在里面写注释

    ---恢复内容结束---

  • 相关阅读:
    leetcode 350. Intersection of Two Arrays II
    leetcode 278. First Bad Version
    leetcode 34. Find First and Last Position of Element in Sorted Array
    leetcode 54. Spiral Matrix
    leetcode 59. Spiral Matrix II
    leetcode 44. Wildcard Matching
    leetcode 10. Regular Expression Matching(正则表达式匹配)
    leetcode 174. Dungeon Game (地下城游戏)
    leetcode 36. Valid Sudoku
    Angular Elements
  • 原文地址:https://www.cnblogs.com/feixiangdecainiao/p/11066477.html
Copyright © 2011-2022 走看看