Webpack 邮政编码处理问题
我的本地应用程序使用mapbox中的mapbox gl库。我正在我的脚本Webpack 邮政编码处理问题,webpack,mapbox-gl-js,postcss,Webpack,Mapbox Gl Js,Postcss,我的本地应用程序使用mapbox中的mapbox gl库。我正在我的脚本import'mapbox gl/dist/mapbox gl.css'中导入一行 这是我的网页配置: const { join } = require('path'); const { isProd, plugins } = require('./setup'); const ExtractText = require('extract-text-webpack-plugin'); const MiniCssExtrac
import'mapbox gl/dist/mapbox gl.css'中导入一行代码>
这是我的网页配置:
const { join } = require('path');
const { isProd, plugins } = require('./setup');
const ExtractText = require('extract-text-webpack-plugin');
const MiniCssExtractPlugin = require('mini-css-extract-plugin');
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
const uglify = require('./uglify');
const out = join(__dirname, '../dist');
const exclude = /(node_modules|bower_components|src\/lib)/;
module.exports = {
mode: 'production',
entry: {
app: [ ... ]
},
optimization: {
minimizer: isProd === true ? [ new UglifyJsPlugin(uglify) ] : [],
splitChunks: {
chunks: 'all',
cacheGroups: {
styles: {
name: 'styles',
test: /\.s?css$/,
chunks: 'all',
minChunks: 1,
reuseExistingChunk: true,
enforce: true,
},
},
}
},
node: {
fs: 'empty'
},
output: {
path: out,
filename: '[name].[hash].js',
publicPath: '/'
},
module: {
rules: [
{
test: /[\/\\]node_modules[\/\\]smooth-scroll[\/\\]dist[\/\\]js[\/\\]smooth-scroll\.js$/,
loader: 'imports-loader?this=>window'
},
{
test: /\.jsx?$/,
exclude: exclude,
loader: 'babel-loader',
},
{
test: /\.(png)$/,
loader: 'url-loader',
query: {
mimetype: 'image/png'
}
},
{
test: /\.svg$/,
use: [ 'svg-loader' ]
},
{
test: /\.(eot|woff|woff2|svg|ttf)([\?]?.*)$/,
use: [ 'file-loader' ]
},
{
test: /\.(png|woff|woff2|eot|ttf|svg)$/,
use: [ 'url-loader?limit=100000' ]
},
{
test: /\.css$/,
loader: 'style-loader!css-loader'
},
{
test: /\.(scss|sass)$/,
use: [
{
loader: MiniCssExtractPlugin.loader,
options: {
hmr: isProd != true
}
},
'css-loader',
'postcss-loader',
{
loader: 'sass-loader',
options: {
implementation: require('sass')
}
}
]
}
]
},
plugins: plugins,
devtool: !isProd && 'eval',
devServer: {
headers: {
'Access-Control-Allow-Origin': '*'
},
contentBase: out,
port: process.env.PORT || 3004,
historyApiFallback: true,
compress: isProd,
inline: !isProd,
hot: !isProd
}
};
以下是我的版本:
"mini-css-extract-plugin": "^0.9.0",
"node-sass": "^4.13.1",
"postcss-import": "^12.0.1",
"postcss-loader": "^3.0.0",
我的错误是:
ERROR in ./node_modules/mapbox-gl/dist/mapbox-gl.css (./node_modules/css-loader!./node_modules/mapbox-gl/dist/mapbox-gl.css)
Module build failed (from ./node_modules/css-loader/index.js):
TypeError: Cannot read property 'toFixed' of undefined
at strongRound (/Users/derp/Projects/compass/public/node_modules/postcss-svgo/node_modules/svgo/plugins/convertPathData.js:766:21)
at /Users/derp/Projects/compass/public/node_modules/postcss-svgo/node_modules/svgo/plugins/convertPathData.js:424:17
以下是正在处理的CSS文件:
您可以看到SVG+XML正在嵌入到负载中。我想知道这是否与问题有关
请注意,这仅在我构建时发生,如果我运行web服务器和实时代码,则问题不存在。此错误已在最新版本的svgo
中修复。尝试运行npm列表
,查看css加载器
和postss加载器
使用的是什么版本的svgo
。我最近也遇到了同样的问题,通过将css-loader
升级到最新版本(3.4.2),我成功地解决了这个问题