主頁 >  其他 > 【Webpack 開發環境配置】萬字長文總結學習如何打包樣式資源、html資源、圖片資源和其他資源?devServer是什么,如何配置?

【Webpack 開發環境配置】萬字長文總結學習如何打包樣式資源、html資源、圖片資源和其他資源?devServer是什么,如何配置?

2021-08-21 07:48:49 其他

webpack.config.js

webpack 開箱即用,可以無需使用任何組態檔,然而,webpack 會假定專案的入口起點為 src/index.js,然后會在 dist/main.js 輸出結果,并且在生產環境開啟壓縮和優化

通常你的專案還需要繼續擴展此能力,為此你可以在專案根目錄下創建一個 webpack.config.js 檔案,然后 webpack 會自動使用它,

webpack.config.js是webpack的組態檔, 作用是:指示 webpack 干哪些活(當你運行 webpack 指令時,會加載里面的配置)

所有構建工具都是基于nodejs平臺運行的~模塊化默認采用commonjs,

下面開始介紹webpack的這個組態檔

創建組態檔

1. 創建檔案 webpack.config.js

2. 配置內容如下

const { resolve } = require('path'); // node 內置核心模塊,用來處理路徑問題,

module.exports = {
	entry: './src/js/index.js', // 入口檔案
	output: { // 輸出配置
		filename: './built.js', // 輸出檔案名
		path: resolve(__dirname, 'build/js') // 輸出檔案路徑配置
	},
	mode: 'development' //開發環境
};

如何打包樣式資源以及loader執行順序是什么

打包 CSS 資源

1. 下載安裝 loader 包

npm i css-loader style-loader less-loader less -D

2. 修改組態檔

/*
  webpack.config.js  webpack的組態檔
    作用: 指示 webpack 干哪些活(當你運行 webpack 指令時,會加載里面的配置)

    所有構建工具都是基于nodejs平臺運行的~模塊化默認采用commonjs,
*/

// resolve用來拼接絕對路徑的方法
const { resolve } = require('path');

module.exports = {
  // webpack配置
  // 入口起點
  entry: './src/index.js',
  // 輸出
  output: {
    // 輸出檔案名
    filename: 'built.js',
    // 輸出路徑
    // __dirname nodejs的變數,代表當前檔案的目錄絕對路徑
    path: resolve(__dirname, 'build')
  },
  // loader的配置
  module: {
    rules: [
      // 詳細loader配置
      // 不同檔案必須配置不同loader處理
      {
        // 匹配哪些檔案
        test: /\.css$/,
        // 使用哪些loader進行處理
        use: [
          // use陣列中loader執行順序:從右到左,從下到上 依次執行
          // 創建style標簽,將js中的樣式資源插入進行,添加到head中生效
          'style-loader',
          // 將css檔案變成commonjs模塊加載js中,里面內容是樣式字串
          'css-loader'
        ]
      },
      {
        test: /\.less$/,
        use: [
          'style-loader',
          'css-loader',
          // 將less檔案編譯成css檔案
          // 需要下載 less-loader和less
          'less-loader'
        ]
      }
    ]
  },
  // plugins的配置
  plugins: [
    // 詳細plugins的配置
  ],
  // 模式
  mode: 'development', // 開發模式
  // mode: 'production'
}

模塊loader可以鏈式呼叫,鏈中的每個loader都將對資源進行轉換,鏈會逆序執行,第一個loader將其結果(被轉換后的資源)傳遞給下一個loader,依此類推,最后,webpack期望鏈中的最后的loader 回傳 JavaScript,

應保證 loader 的先后順序:‘style-loader’ 在前,而 ‘css-loader’ 在后,如果不遵守此約定,webpack 可能會拋出錯誤,

不同檔案必須配置不同loader處理

css檔案要用style-loadercss-loader

less檔案要用less-loaderstyle-loadercss-loader

具體這三個loder的作用見上面代碼注釋,

loader執行順序(非常重要,切記!!!):

use陣列中loader執行順序:從右到左,從下到上 依次執行

其實所謂的從下到上就是把陣列里的每個元素換行展示了,本質還是陣列從右至左,

如何打包html資源

打包html資源需要用到html-webpack-plugin這個插件,下載安裝 plugin 包

npm install --save-dev html-webpack-plugin

實體檔案目錄:
在這里插入圖片描述
loader使用的一個區別是,插件plugin下載后需要引入后才能使用:

// 引入
const HtmlWebpackPlugin = require('html-webpack-plugin');

默認配置:

/*
  loader: 1. 下載   2. 使用(配置loader)
  plugins: 1. 下載  2. 引入  3. 使用
*/
const { resolve } = require('path');
// 引入
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
  entry: './src/index.js',
  output: {
    filename: 'built.js',
    path: resolve(__dirname, 'build')
  },
  module: {
    rules: [
      // loader的配置
    ]
  },
  plugins: [
    // plugins的配置
    // html-webpack-plugin
    // 功能:默認會創建一個空的HTML,自動引入打包輸出的所有資源(JS/CSS)
    new HtmlWebpackPlugin()
  ],
  mode: 'development'
};

html-webpack-plugin插件的功能:默認會創建一個空的HTML,自動引入打包輸出的所有資源(JS/CSS)
在這里插入圖片描述
實際開發中我們的需求:需要有結構的HTML檔案

我們可以通過對HtmlWebpackPlugin添加配置選項template,添加目標html檔案的路徑即可,具體配置如下:

/*
  loader: 1. 下載   2. 使用(配置loader)
  plugins: 1. 下載  2. 引入  3. 使用
*/
const { resolve } = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
  entry: './src/index.js',
  output: {
    filename: 'built.js',
    path: resolve(__dirname, 'build')
  },
  module: {
    rules: [
      // loader的配置
    ]
  },
  plugins: [
    // plugins的配置
    // html-webpack-plugin
    // 功能:默認會創建一個空的HTML,自動引入打包輸出的所有資源(JS/CSS)
    // 需求:需要有結構的HTML檔案
    new HtmlWebpackPlugin({
      // 復制 './src/index.html' 檔案,并自動引入打包輸出的所有資源(JS/CSS)
      template: './src/index.html'
    })
  ],
  mode: 'development'
};

目標html檔案:
在這里插入圖片描述
打包出來的檔案:
在這里插入圖片描述

html-webpack-plugin插件設定template配置屬性的功能:復制 ‘./src/index.html’ 檔案,并自動引入打包輸出的所有資源(JS/CSS)

如何打包圖片資源

為什么需要對webpack做打包圖片的配置?我們先看一個在樣式中引入圖片(background-image)的實體

實體目錄結構如下:
在這里插入圖片描述
index.html:
在這里插入圖片描述

index.js:
在這里插入圖片描述
index.less:
在這里插入圖片描述
如果我們不對圖片資源做配置的話,基礎的webpack.config.js配置如下:

const { resolve } = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
  entry: './src/index.js',
  output: {
    filename: 'built.js',
    path: resolve(__dirname, 'build')
  },
  module: {
    rules: [
      {
        test: /\.less$/,
        // 要使用多個loader處理用use
        use: ['style-loader', 'css-loader', 'less-loader']
      }
    ]
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: './src/index.html'
    })
  ],
  mode: 'development'
};

對專案進行打包后,我們發現圖片資源處理不了,在打包圖片的時候是報錯的:
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
所以我們需要對圖片進行單獨的處理

我們使用url-loader來處理圖片資源,這里需要下載url-loaderfile-loade兩個loader:

npm i url-loader file-loade -D

url-loader有相應的優化配置屬性limit,寫在options里,

limit屬性的作用:圖片大小小于指定數值時,就會被base64處理

  • 優點:減少請求數量(減輕服務器壓力)
  • 缺點:圖片體積會更大(檔案請求速度更慢)

配置如下:

const { resolve } = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
  entry: './src/index.js',
  output: {
    filename: 'built.js',
    path: resolve(__dirname, 'build')
  },
  module: {
    rules: [
      {
        test: /\.less$/,
        // 要使用多個loader處理用use
        use: ['style-loader', 'css-loader', 'less-loader']
      },
      {
        // 問題:默認處理不了html中img圖片
        // 處理圖片資源
        test: /\.(jpg|png|gif)$/,
        // 使用一個loader
        // 下載 url-loader file-loader
        loader: 'url-loader',
        options: {
          // 圖片大小小于8kb,就會被base64處理
          // 優點: 減少請求數量(減輕服務器壓力)
          // 缺點:圖片體積會更大(檔案請求速度更慢)
          limit: 8 * 1024
        }
      }
    ]
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: './src/index.html'
    })
  ],
  mode: 'development'
};

配置完成后再次打包運行:
在這里插入圖片描述
圖片資源沒有報錯,

這里我們備注一下上面代碼里我們用到的三張圖片資源:

angular.jpg,12kb大小:
在這里插入圖片描述
react.png,74kb大小:
在這里插入圖片描述
vue.jpg,4kb大小:
在這里插入圖片描述
再來看一下輸出的資源:
在這里插入圖片描述
我們發現打包后的資源輸出了兩張圖片,一張74kb,一張12kb,但我們實際上引入了三張圖片,還有以這樣圖片去哪里呢?

我們看build:
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
我們發現vue.jpg經過了base64處理,變成了一個非常長的編碼字串,變成了字串的形式,而不會輸出成一張圖片,所以我們輸出的結果就少了一張圖片,這正是前面url-loader做優化配置屬性limit后的效果,

我們打開build檔案下的index.html檔案驗證一下效果:
在這里插入圖片描述
三張圖片正常顯示

我們檢查一下html結構,可以發現box1盒子背景圖片(vue.jpg)的url是一個base64的地址:
在這里插入圖片描述
到這里我們處理了樣式里的圖片資源,只是這樣還不夠,因為除了在樣式中引入圖片以外,我們還可能在html中通過<img>標簽的方式引入圖片:<img src="./angular.jpg" alt="angular">
在這里插入圖片描述
在html中通過<img>標簽的方式引入圖片后,在原有的配置中我們再打包一次,發現沒有報錯,輸出的結果和之前一樣,打開build下的index.html:
在這里插入圖片描述
img的路徑還是src="./angular.jpg"./是相對路徑,但是相對路徑下沒有angular.jpg這張圖片:
在這里插入圖片描述
我們打開build下的index.html,發現<img src="./angular.jpg" alt="angular">這張圖片是找不到的:
在這里插入圖片描述
這是因為上面url-loader的配置有一個問題:默認處理不了html中img圖片

這里我們還要再加一個loader:html-loader作用是:處理html檔案的img圖片(負責引入img,從而能被url-loader進行處理)

下載html-loader:

npm i html-loader -D

配置:

const { resolve } = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
  entry: './src/index.js',
  output: {
    filename: 'built.js',
    path: resolve(__dirname, 'build')
  },
  module: {
    rules: [
      {
        test: /\.less$/,
        // 要使用多個loader處理用use
        use: ['style-loader', 'css-loader', 'less-loader']
      },
      {
        // 問題:默認處理不了html中img圖片
        // 處理圖片資源
        test: /\.(jpg|png|gif)$/,
        // 使用一個loader
        // 下載 url-loader file-loader
        loader: 'url-loader',
        options: {
          // 圖片大小小于8kb,就會被base64處理
          // 優點: 減少請求數量(減輕服務器壓力)
          // 缺點:圖片體積會更大(檔案請求速度更慢)
          limit: 8 * 1024
        }
      },
      {
        test: /\.html$/,
        // 處理html檔案的img圖片(負責引入img,從而能被url-loader進行處理)
        loader: 'html-loader'
      }
    ]
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: './src/index.html'
    })
  ],
  mode: 'development'
};

上面的配置打包后發現還是沒有報錯,但是build下的index.html檔案里img的src變成了[object Module]
在這里插入圖片描述
這是為什么呢?

這是 因為url-loader默認使用es6模塊化決議,而html-loader引入圖片是common.jsurl-loader以es6模塊去決議common.js模塊,決議不了,

解決方法:關閉url-loader的es6模塊化,使用commonjs決議

{
  // 問題:默認處理不了html中img圖片
  // 處理圖片資源
  test: /\.(jpg|png|gif)$/,
  // 使用一個loader
  // 下載 url-loader file-loader
  loader: 'url-loader',
  options: {
    // 圖片大小小于8kb,就會被base64處理
    // 優點: 減少請求數量(減輕服務器壓力)
    // 缺點:圖片體積會更大(檔案請求速度更慢)
    limit: 8 * 1024,
    // 問題:因為url-loader默認使用es6模塊化決議,而html-loader引入圖片是commonjs
    // 決議時會出問題:[object Module]
    // 解決:關閉url-loader的es6模塊化,使用commonjs決議
    esModule: false
  }
},

關閉url-loader的es6模塊化,再次打包,沒有報錯

查看build下的index.html檔案
在這里插入圖片描述
img的src變成[object Module]的問題已經解決,變成了完整的絕對路徑,上面的長字串是根據圖片內容生成的唯一hash值,

打開build下的index.html檔案,html里的圖片顯示正常:
在這里插入圖片描述
我們發現打包后圖片的名字有點長,這是根據圖片內容生成的唯一hash值:
在這里插入圖片描述
不想讓圖片名字這么長可以通過url-loader里的name屬性來給圖片進行重命名:name: '[hash:10].[ext]'

  • [hash:10]取圖片的hash的前10位
  • [ext]取檔案原來擴展名

對圖片資源最終的配置如下:

const { resolve } = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
  entry: './src/index.js',
  output: {
    filename: 'built.js',
    path: resolve(__dirname, 'build')
  },
  module: {
    rules: [
      {
        test: /\.less$/,
        // 要使用多個loader處理用use
        use: ['style-loader', 'css-loader', 'less-loader']
      },
      {
        // 問題:默認處理不了html中img圖片
        // 處理圖片資源
        test: /\.(jpg|png|gif)$/,
        // 使用一個loader
        // 下載 url-loader file-loader
        loader: 'url-loader',
        options: {
          // 圖片大小小于8kb,就會被base64處理
          // 優點: 減少請求數量(減輕服務器壓力)
          // 缺點:圖片體積會更大(檔案請求速度更慢)
          limit: 8 * 1024,
          // 問題:因為url-loader默認使用es6模塊化決議,而html-loader引入圖片是commonjs
          // 決議時會出問題:[object Module]
          // 解決:關閉url-loader的es6模塊化,使用commonjs決議
          esModule: false,
          // 給圖片進行重命名
          // [hash:10]取圖片的hash的前10位
          // [ext]取檔案原來擴展名
          name: '[hash:10].[ext]'
        }
      },
      {
        test: /\.html$/,
        // 處理html檔案的img圖片(負責引入img,從而能被url-loader進行處理)
        loader: 'html-loader'
      }
    ]
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: './src/index.html'
    })
  ],
  mode: 'development'
};

打包后的圖片名稱已經變成取圖片的hash的前10位
在這里插入圖片描述
另外我們還可以發現webpack打包的一個優勢:

上面的例子中html里參考了一次angular.jpg,在樣式檔案里也參考了一次angular.jpg,但打包之后其實只生成了一張angular.jpg的圖片檔案

所以在這里就是當webpack在決議的時候發現我們使用了同一個檔案,它不會重復打包,它只會輸出一次,這也是webpack的一個優勢,它不會重復打包某一個檔案,

如何打包其他資源

什么是其他資源呢?比如說字體圖示icon

字體圖示的特點就是我們不需要做任何處理,只需要原封不動的輸出出去就ok了,這就是其他資源,不需要做優化,也不需要做壓縮啊等等,這類資源統一歸類于其他資源,

我們先下載一個字體圖示,這里使用iconfont圖示,隨便選擇一個,直接點擊下載代碼
在這里插入圖片描述
下載完之后解壓一下,這里包含了字體圖示的所有配置
在這里插入圖片描述
我們這里使用font-class 參考
在這里插入圖片描述
我們新建檔案夾,src/index.html,使用字體圖示看一看效果
在這里插入圖片描述
在這里插入圖片描述
再寫一個入口js檔案,index.js,作用就是負責引入字體圖示樣式檔案
在這里插入圖片描述
iconfont.css檔案里又參考了.eot.woffttf.svg資源,我們也需要放入專案中,具體看前面的實體專案檔案目錄
在這里插入圖片描述
打包其他資源我們可以使用exclude排除已經處理過或者不需要處理的資源,然后使用file-loader對其他資源進行處理,一個小的優化就是可以對打包后的檔案名稱做一個縮短優化

具體配置:

const { resolve } = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
  entry: './src/index.js',
  output: {
    filename: 'built.js',
    path: resolve(__dirname, 'build')
  },
  module: {
    rules: [
      {
        test: /\.css$/,
        use: ['style-loader', 'css-loader']
      },
      // 打包其他資源(除了html/js/css資源以外的資源)
      {
        // 排除css/js/html資源
        exclude: /\.(css|js|html|less)$/,
        loader: 'file-loader',
        options: {
          name: '[hash:10].[ext]'
        }
      }
    ]
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: './src/index.html'
    })
  ],
  mode: 'development'
};

打包運行專案,字體圖示顯示正常
sa

如何配置devServer

webpack-dev-server具有實時重新加載 (live reloading) 的功能,用來自動化(自動編譯,自動打開瀏覽器,自動重繪瀏覽器~~)

特點:只會在記憶體中編譯打包,不會有任何輸出

啟動devServer指令為npx webpack-dev-server

webpack devServer啟動gzip壓縮:compress: true

配置如下:

const { resolve } = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
  entry: './src/index.js',
  output: {
    filename: 'built.js',
    path: resolve(__dirname, 'build')
  },
  module: {
    rules: [
      {
        test: /\.css$/,
        use: ['style-loader', 'css-loader']
      },
      // 打包其他資源(除了html/js/css資源以外的資源)
      {
        // 排除css/js/html資源
        exclude: /\.(css|js|html|less)$/,
        loader: 'file-loader',
        options: {
          name: '[hash:10].[ext]'
        }
      }
    ]
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: './src/index.html'
    })
  ],
  mode: 'development',

  // 開發服務器 devServer:用來自動化(自動編譯,自動打開瀏覽器,自動重繪瀏覽器~~)
  // 特點:只會在記憶體中編譯打包,不會有任何輸出
  // 啟動devServer指令為:npx webpack-dev-server
  devServer: {
    // 專案構建后路徑
    contentBase: resolve(__dirname, 'build'),
    // 啟動gzip壓縮
    compress: true,
    // 埠號
    port: 3000,
    // 自動打開瀏覽器
    open: true
  }
};

配置好devServer,啟動devServer,打開瀏覽器,輸入:localhos:3000,這就是我們使用devServer搭建的服務器,這個服務器啟動的專案,

開發環境配置總結——一個完整的開發環境配置

除了之前的配置,我們還要做一些處理,之前撰寫的實體目錄有點亂
在這里插入圖片描述
我們劃分一下目錄
在這里插入圖片描述

把原來的路徑修改好后,輸入命令webpack打包專案,看一下輸出結果:
在這里插入圖片描述
我們發現所有的資源都輸出到一塊了,沒有任何的差別

如果希望打包后的資源和原來的結構一樣的,可以一個一個調

首先讓先js檔案輸出到js的目錄下,要修改outputfilename屬性,在built.js前加js/

  output: {
    filename: 'js/built.js',
    path: resolve(__dirname, 'build')
  },

重新構建一下專案,可以發現build下面就多了一個js目錄
在這里插入圖片描述
圖片資源修改構建路徑要在url-loader中添加outputPath配置屬性:outputPath: 'imgs'

 {
   // 處理圖片資源
   test: /\.(jpg|png|gif)$/,
   loader: 'url-loader',
   options: {
     limit: 8 * 1024,
     name: '[hash:10].[ext]',
     // 關閉es6模塊化
     esModule: false,
     outputPath: 'imgs'
   }
 },

這樣圖片資源就會構建在build下面的imgs檔案夾下
在這里插入圖片描述
其他資源修改構建路徑也是添加outputPath配置屬性:outputPath: 'media'

  {
    // 處理其他資源
    exclude: /\.(html|js|css|less|jpg|png|gif)/,
    loader: 'file-loader',
    options: {
      name: '[hash:10].[ext]',
      outputPath: 'media'
    }

在這里插入圖片描述
把build目錄刪掉,重新打包一次,就可以看到清晰的結構
在這里插入圖片描述
有人可能會問,為什么構建后的資源沒有看到之前寫的css檔案?這是因為css-loader把css檔案打包到js當中了(復習環節),它是跟js檔案融為一體的,所以沒有被單獨打包出去

  {
     // 匹配哪些檔案
     test: /\.css$/,
     // 使用哪些loader進行處理
     use: [
       // use陣列中loader執行順序:從右到左,從下到上 依次執行
       // 創建style標簽,將js中的樣式資源插入進行,添加到head中生效
       'style-loader',
       // 將css檔案變成commonjs模塊加載js中,里面內容是樣式字串
       'css-loader'
     ]
   },

在這里插入圖片描述
完整的開發環境配置:

/*
  開發環境配置:能讓代碼運行
    運行專案指令:
      webpack 會將打包結果輸出出去
      npx webpack-dev-server 只會在記憶體中編譯打包,沒有輸出
*/

const { resolve } = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
  entry: './src/js/index.js',
  output: {
    filename: 'js/built.js',
    path: resolve(__dirname, 'build')
  },
  module: {
    rules: [
      // loader的配置
      {
        // 處理less資源
        test: /\.less$/,
        use: ['style-loader', 'css-loader', 'less-loader']
      },
      {
        // 處理css資源
        test: /\.css$/,
        use: ['style-loader', 'css-loader']
      },
      {
        // 處理圖片資源
        test: /\.(jpg|png|gif)$/,
        loader: 'url-loader',
        options: {
          limit: 8 * 1024,
          name: '[hash:10].[ext]',
          // 關閉es6模塊化
          esModule: false,
          outputPath: 'imgs'
        }
      },
      {
        // 處理html中img資源
        test: /\.html$/,
        loader: 'html-loader'
      },
      {
        // 處理其他資源
        exclude: /\.(html|js|css|less|jpg|png|gif)/,
        loader: 'file-loader',
        options: {
          name: '[hash:10].[ext]',
          outputPath: 'media'
        }
      }
    ]
  },
  plugins: [
    // plugins的配置
    new HtmlWebpackPlugin({
      template: './src/index.html'
    })
  ],
  mode: 'development',
  devServer: {
    contentBase: resolve(__dirname, 'build'),
    compress: true,
    port: 3000,
    open: true
  }
};

參考

  • https://www.bilibili.com/video/BV1e7411j7T5?p=6
  • https://webpack.docschina.org/concepts/

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/295152.html

標籤:其他

上一篇:開發工具--IDEA基礎設定

下一篇:Java集合---->Map介面

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more