2017-06-28 61 views
0

我是webpack的新手。使用webpack時PNG不加載

PNG文件未能在我的項目加載,有些SlickGrid插件的使用URL()函數來加載PNG文件如下面給出的,

enter image description here

但我發現了在下面的錯誤我瀏覽器控制檯, enter image description here

這裏是我的WebPack文件,

/* eslint-env node */ 

module.exports = { 
    context: __dirname + '/xyz/static', 
    entry: { 
    reactComponents: './bundle/components.js', 
    history: './js/history/index.js', 
    slickgrid: './bundle/slickgrid.js', 
    }, 
    output: { 
    libraryTarget: 'amd', 
    path: __dirname + '/xyz/static/js/generated', 
    filename: '[name].js', 
    }, 

    module: { 
    rules: [{ 
     test: /\.jsx?$/, 
     exclude: [/node_modules/, /vendor/], 
     use: { 
     loader: 'babel-loader', 
     options: { 
      presets: ['es2015', 'react'], 
     }, 
     }, 
    }, { 
     test: /\.css$/, 
     use: ['style-loader', 'raw-loader'], 
    }], 
    }, 

    resolve: { 
    extensions: ['.js', '.jsx'], 
    }, 
}; 

請讓我知道我在這裏錯過了什麼。

回答

1

你需要使用一個url-loader在你的WebPack配置加載相似圖片

module: { 
    rules: [{ 
     test: /\.jsx?$/, 
     exclude: [/node_modules/, /vendor/], 
     use: { 
     loader: 'babel-loader', 
     options: { 
      presets: ['es2015', 'react'], 
     }, 
     }, 
    }, { 
     test: /\.css$/, 
     use: ['style-loader', 'raw-loader'], 
    },{ 
      test: /\.(jpe?g|png|gif|svg)$/, 
      use:['url-loader'] 
     }], 
    } 

,然後在你的代碼,你可以導入相似圖片

import img from 'path/to/image.png'; 

,並用它作爲源像

<img src={img} /> 
+0

SlickGrid是第三方庫,爲什麼我需要更改它的代碼? – n33rma

+0

不要改變它的代碼,但是我認爲webpack配置是你的文件,所以可以嘗試改變它 –

+0

對不起,我是webpack的新手,我不理解你最後一句話'並將它用作圖像標記中的源代碼' – n33rma