我将 ngx-leaflet 与 webpack 4 一起使用,但在显示图层控制图像时遇到问题。默认标记图标显示得很好,因为我使用文件加载器从 'leaflet/dist/images/layers.png' 等导入图标名。该项目不使用 CLI 并使用独立的 webpack 4。如果我采用相同的代码并在 angular CLI 项目中使用它,则在遵循 Angular CLI Marker Workaround 部分中的资产配置后,图标会很好地显示。我错过了什么?我需要什么才能在不使用 CLI 的情况下显示此图标?我在开发人员工具中没有收到任何错误,并且似乎在网络流量中请求了 layers.png。
这是 webpack 配置:
"use strict";
var path = require('path');
var webpack = require('webpack');
var ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin');
var HappyPack = require('happypack');
module.exports = {
mode: 'development',
devtool: 'inline-source-map',
entry:
{
polyfills: './src/polyfills.ts',
app: './src/main.ts'
},
output:
{
filename: '[name].js',
chunkFilename: '[name]-chunk.js',
publicPath: './dist/',
path: path.resolve(__dirname, 'dist')
},
module: {
rules: [
{
test: /\.html$/,
use: 'raw-loader'
},
{
test: /\.tsx?$/,
loaders: [
{
loader: 'cache-loader'
},
{
loader: 'happypack/loader'
},
{
loader: 'angular-router-loader'
}
]
},
{
test: /\.(png|jpg|svg)$/,
use:
[
{
loader: 'file-loader',
options:
{
name: '[name].[ext]',
outputPath: 'assets/'
}
}
]
}
]
},
plugins: [
new webpack.ContextReplacementPlugin(/\@angular(\\|\/)core(\\|\/)esm5/, path.join(__dirname, './src')),
new ForkTsCheckerWebpackPlugin({}),
new HappyPack({
threads: 2,
loaders:
[
{
loader: 'ts-loader',
options: { transpileOnly: true, happyPackMode: true }
}
]
})
]
};