汇总包括不需要的依赖关系,并在输出中缺less一个函数
我第一次使用rollup
,它产生了一些意想不到的结果。 下面我有我的例子中的三个文件,以及来自rollup
的输出和我正在寻找的输出种类。
这是我的完整示例的回购。
我有三个文件01.js
, 02.js
, 03.js
。
01.js
import { fakePromise } from './02' export default fakePromise
02.js
import { map } from 'lodash' import { stupidReference } from './03' export function fakePromise (str) { return stupidReference(str) } export function fakeMap (arr) { return map(arr, item => item + ' is stupid') }
03.js
import Promise from 'bluebird' export function stupidReference (str) { return Promise.resolve(str) }
这是rollup
正在返回。 (实际)
import { map } from 'lodash'; import Promise from 'bluebird'; function fakePromise (str) { return stupidReference(str) } export default fakePromise;
这是我希望汇总返回。 (预期)
import Promise from 'bluebird'; function stupidReference (str) { return Promise.resolve(str) } function fakePromise (str) { return stupidReference(str) } export default fakePromise;
我的印象是,汇总会摆脱你在项目中不需要的所有依赖。 但是你可以看到实际的输出还包含一个不需要的依赖lodash
,而且它也缺less另一个内部函数stupidReference
。
我很好奇,为什么这不是我所期望的。 我也很好奇,如果我正确使用rollup
工具。 如果这不是预期的用途,我真的很想find一个工具,实现我正在寻找的function。 我想提供一个函数(或像01.js
以上的文件),只有运行该function所需的代码。
更新1
不确定我的代码发生了什么,但汇总站点上的编辑器能够拉入另一个文件并跟随树。 这里有一个链接到我所拥有的。
更新2
我意识到我可能configuration了babel不正确,我安装了下面的两个模块以及添加.babelrc
和rollup.config.js
。
npm i rollup-plugin-babel babel-preset-es2015-rollup --save
rollup.config.js
import babel from 'rollup-plugin-babel'; export default { entry: './01.js', plugins: [ babel() ], format: 'es6' };
.babelrc
{ "presets": [ "es2015-rollup" ] }
有了这个更新,相同的输出仍然在产生。
你会踢自己:-)回购有一个错字 – stupidReference
拼写stuidReference
在几个地方。 修复这些,它捆绑罚款。 (如果Rollup看到一个标识符,它不知道其来源,它认为它是一个全球性的,而不是一个错字)。
Lodash被包括,即使它的依赖函数不包括,因为Rollup不知道Lodash是否有副作用。 一个select是在包中包含Lodash(即使用rollup-plugin-node-resolve ),以便Rollup 可以看到代码,但是请注意, 颤抖的Lodash说起来容易做起来难 ,所以build议使用lodash-es
并导入单个文件:
import map from 'lodash-es/map.js';