webpack 打包圖片時遇到的bug
阿新 • • 發佈:2021-01-26
技術標籤:# Webpack
Module build failed: TypeError [ERR_INVALID_ARG_TYPE]: The “from” argument must be of type string. Received undefined
在使用 url-loader 時 limit 的限制過小導致,我們需要安裝 file-loader 並且調低url-loader和file-loader的版本
在packge.json中修改成下面的版本後(我自己隨便找的低版本)執行 npm install
"url-loader": "^1.1.1", "file-loader": "^1.1.1",
在options中設定name屬性之後,如果圖片的大小大於預設值,則直接拷貝到dist資料夾中,否則轉成base64編碼。
{
// DOS只允許字尾名為三個htm,jpg == html,jpeg
test: /\.(png|jpg|gif|jpeg)$/,
use: [{
loader: 'url-loader',
options: {
// 當載入的圖片,小於limit時,會將圖片編譯成base64字串形式。
// 當載入的圖片,大於limit時,需要使用file-loader模組進行載入。
limit: 13000,
// 給name加上[]是還原圖片原本的名字,不加就都叫name.jpg
// extension
name: 'img/[name].[hash:8].[ext]',
}
}]
}