首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在rollupjs中禁用树摇动

如何在rollupjs中禁用树摇动
EN

Stack Overflow用户
提问于 2017-08-21 02:10:27
回答 1查看 1.6K关注 0票数 4

我试图使用RollUp.js将几个javascript文件捆绑在一起,但当我这样做时,不使用的类被删除了。这个过程被称为树摇动,我想禁用它。

我已经找到了this,但它似乎没有任何效果。

代码语言:javascript
复制
// rollup.config.js

let configuration = {
  output: {
    format: 'es',
  },
  name: 'namename',
  input: './main.js',
  treeshake: false, // <-- disabling tree shaking?
};

export default configuration;

我将treeshake: false添加到配置中,但它似乎没有任何效果。这是不是应该放在别的地方?

这是我想要卷起的文件。

代码语言:javascript
复制
// Base.js
export default class Base {
  aMethod() {
    return "Hello";
  }
}

// main.js 
import Base from './Base.js';

有了这个设置,我调用rollup --config,它就会产生一些空的东西。所以很明显,树摇动正在发生,它正在移除Base类,尽管我导入了它。

到目前为止,我发现的唯一解决办法是实际创建类的一个实例,这是不可取的。

代码语言:javascript
复制
// main.js
import Base from './Base.js';

export default function () {
    {   
        new Base();
    }
}

我的目标是将捆绑的javascript文件与JSContext结合使用。它将以字符串的形式接收javascript,然后根据需要调用方法。

代码语言:javascript
复制
// suppose rollup.js produces a file called "product.js"

let s = String(contentsOfFile: "path/to/product.js")
let context = JSContext()!
context.evaluateScript(s)

context.evaluateScript("var b = new Base()")
context.evaluateScript("b.aMethod()")

但由于树摇晃,基类永远不会放在product.js中

有没有办法禁用树摇动?

我已经为此包含了一个sample project

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-21 06:15:02

您的入口文件- main.js -需要导出任何需要向外部世界访问的类或其他值:

代码语言:javascript
复制
// main.js
import Base from './Base.js';
import SubB from './SubB.js';
import SubA from './SubA.js';

export { Base, SubA, SubB };
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45785357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档