我无法确定date-fns v.2 摇树功能的工作原理......
为了帮助我,我做了一个非常简单的项目,使用:
date-fns 2.1.0
webpack 4.39.3
typescript 3.6.2
该测试包含 2 个文件,一个充当“库”,另一个充当要运行的代码,它就像...
import ParseDate from './parse-date'
const parse = new ParseDate();
const result = parse.getExpirationDate({ months: 3 });
console.log(result);
但问题是,虽然我只要求使用摇树使用 6 个库
import { addYears, addMonths, addWeeks, addDays, addHours, addMinutes } from 'date-fns';
从他们的文档中:
// Without tree-shaking:
import format from 'date-fns/format'
import parse from 'date-fns/parse'
// With tree-shaking:
import { format, parse } from 'date-fns'
webpack 捆绑了整个 date-fns 库,这是 2 个文件726Kb的结果!
> npm run build
> date_fns_test@1.0.0 build C:\Users\balexandre\date_fns_test
> tsc && webpack
Hash: 419a712549fc2309f21e
Version: webpack 4.39.3
Time: 820ms
Built at: 2019-09-09 17:27:36
Asset Size Chunks Chunk Names
bundle.js 726 KiB main [emitted] main
Entrypoint main = bundle.js
chunk {main} bundle.js (main) 441 KiB [entry] [rendered]
> ./src/index.js main
[./src/index.js] 410 bytes {main} [depth 0] [built]
single entry ./src/index.js main
[./src/parse-date.js] 1.27 KiB {main} [depth 1] [built]
cjs require ./parse-date [./src/index.js] 6:35-58
+ 212 hidden modules
我错过了什么?...必须是一件简单的事情,但我已经没有想法了:(
该项目可以在 GitHub 上找到以便于查看(和 git pull):)