将 Leaflet 与 rollup 一起使用会生成一个巨大的 sourcemap
Using Leaflet with rollup generates a huge sourcemap
除了简单的 "helloworld" 案例之外,我目前正在通过使用 rollup.js 磨练自己的脚力。我创建了一个汇总项目,我在其中结合使用了 babel、eslint 和传单。我的rollup.config.js如下:
// plugins
import babel from 'rollup-plugin-babel';
import eslint from 'rollup-plugin-eslint';
import resolve from 'rollup-plugin-node-resolve';
import commonjs from 'rollup-plugin-commonjs';
export default{
entry: 'src/scripts/main.js',
dest: 'build/js/main.min.js',
format: 'iife',
sourcemap: 'inline',
plugins: [
resolve({
jsnext: true,
main: true,
browser: true,
}),
commonjs(),
eslint({
exclude: [
'src/styles/**',
]
}),
babel({exclude:'node_modules/**', })
]
};
接下来我的 main.js 由:
import L from 'leaflet';
var map = L.map('map').setView([54.217, -4.5373], 8);
L.tileLayer('http://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png', {
attribution: '© <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors, © <a href="http://cartodb.com/attributions">CartoDB</a>'
}).addTo(map);
还有我的 index.html:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport"
content="width=device-width,minimum-scale=1,initial-scale=1">
<style>
#map {
width:600px;
height:400px;
}
</style>
<link href="https://unpkg.com/leaflet@1.2.0/dist/leaflet.css" rel="stylesheet" type="text/css" />
<title>Learning Rollup</title>
</head>
<body>
<div id="map">
</div>
<!-- This is the bundle generated by rollup.js -->
<script src="js/main.min.js"></script>
</body>
</html>
当我执行 rollup -c
时,我最终得到一个 1.4MB+ main.js.min
的巨大文件...如果我从我的 rollup.config.js
中删除 sourcemap: 'inline'
,大小该文件下降到 390 kb。出于什么原因,sourcemap 会爆炸生成文件的大小? treeshacking 不是应该进一步减少生成的文件吗?
sourcemap 几乎总是比它映射的代码大。出于这个原因,sourcemap: 'inline'
不推荐 — 改为 sourcemap: true
它将被写入相邻的 .map
文件,该文件只会如果有人在启用 sourcemaps 的情况下打开他们的开发工具,则下载。
这与摇树无关。
除了简单的 "helloworld" 案例之外,我目前正在通过使用 rollup.js 磨练自己的脚力。我创建了一个汇总项目,我在其中结合使用了 babel、eslint 和传单。我的rollup.config.js如下:
// plugins
import babel from 'rollup-plugin-babel';
import eslint from 'rollup-plugin-eslint';
import resolve from 'rollup-plugin-node-resolve';
import commonjs from 'rollup-plugin-commonjs';
export default{
entry: 'src/scripts/main.js',
dest: 'build/js/main.min.js',
format: 'iife',
sourcemap: 'inline',
plugins: [
resolve({
jsnext: true,
main: true,
browser: true,
}),
commonjs(),
eslint({
exclude: [
'src/styles/**',
]
}),
babel({exclude:'node_modules/**', })
]
};
接下来我的 main.js 由:
import L from 'leaflet';
var map = L.map('map').setView([54.217, -4.5373], 8);
L.tileLayer('http://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png', {
attribution: '© <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors, © <a href="http://cartodb.com/attributions">CartoDB</a>'
}).addTo(map);
还有我的 index.html:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport"
content="width=device-width,minimum-scale=1,initial-scale=1">
<style>
#map {
width:600px;
height:400px;
}
</style>
<link href="https://unpkg.com/leaflet@1.2.0/dist/leaflet.css" rel="stylesheet" type="text/css" />
<title>Learning Rollup</title>
</head>
<body>
<div id="map">
</div>
<!-- This is the bundle generated by rollup.js -->
<script src="js/main.min.js"></script>
</body>
</html>
当我执行 rollup -c
时,我最终得到一个 1.4MB+ main.js.min
的巨大文件...如果我从我的 rollup.config.js
中删除 sourcemap: 'inline'
,大小该文件下降到 390 kb。出于什么原因,sourcemap 会爆炸生成文件的大小? treeshacking 不是应该进一步减少生成的文件吗?
sourcemap 几乎总是比它映射的代码大。出于这个原因,sourcemap: 'inline'
不推荐 — 改为 sourcemap: true
它将被写入相邻的 .map
文件,该文件只会如果有人在启用 sourcemaps 的情况下打开他们的开发工具,则下载。
这与摇树无关。