我是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;
我的印象是,rollup 会摆脱项目中不需要的所有依赖项。但是,您可以看到实际输出还包括一个不需要的依赖项lodash
,并且还缺少另一个内部函数stupidReference
。
我很好奇为什么这不像我预期的那样工作。我也很好奇我rollup
是否正确使用了该工具。如果这不是预期用途,我真的很想找到一个能够实现我正在寻找的功能的工具。我想提供一个函数(或01.js
上面的文件),并且只有运行该函数所需的代码。
更新 1
不确定我的代码发生了什么,但汇总站点上的编辑器能够拉入另一个文件并跟随树向下。这是我所拥有的链接。
更新 2
我意识到我可能错误地配置了 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" ]
}
通过此更新,仍会产生相同的输出。