我试图使用RollUp.js将几个javascript文件捆绑在一起,但当我这样做时,不使用的类被删除了。这个过程被称为树摇动,我想禁用它。
我已经找到了this,但它似乎没有任何效果。
// rollup.config.js
let configuration = {
output: {
format: 'es',
},
name: 'namename',
input: './main.js',
treeshake: false, // <-- disabling tree shaking?
};
export default configuration;我将treeshake: false添加到配置中,但它似乎没有任何效果。这是不是应该放在别的地方?
这是我想要卷起的文件。
// Base.js
export default class Base {
aMethod() {
return "Hello";
}
}
// main.js
import Base from './Base.js';有了这个设置,我调用rollup --config,它就会产生一些空的东西。所以很明显,树摇动正在发生,它正在移除Base类,尽管我导入了它。
到目前为止,我发现的唯一解决办法是实际创建类的一个实例,这是不可取的。
// main.js
import Base from './Base.js';
export default function () {
{
new Base();
}
}我的目标是将捆绑的javascript文件与JSContext结合使用。它将以字符串的形式接收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。
发布于 2017-08-21 06:15:02
您的入口文件- main.js -需要导出任何需要向外部世界访问的类或其他值:
// main.js
import Base from './Base.js';
import SubB from './SubB.js';
import SubA from './SubA.js';
export { Base, SubA, SubB };https://stackoverflow.com/questions/45785357
复制相似问题