【发布时间】:2020-06-29 11:45:44
【问题描述】:
几天来,我一直在尝试熟悉 Rollup,但有一件事让我感到困惑。 Rollup 总是在文件开头对导入脚本的内容进行分组,而不管它被导入到的文件末尾的正确位置。这对于很长的同步脚本来说是个问题。
Rollup 不支持这个,还是我不确定如何正确配置?
我通过 CLI 和设置文件 (rollup.config.js) 使用它。它运作良好,除了我上面提到的情况。
你能帮忙吗?
编辑: 首先:这只是一个例子。
假设我有两个文件,一个叫index.js,另一个叫 maths.js,后者由第一个导入。
// index.js
/**
* License ...
*/
let numbers = {};
numbers.property = "This is a static variable";
numbers.base = 1000;
// Module maths
import {maths} from "./maths";
numbers.maths = maths;
// Testing
console.log(numbers.maths.sum(10, 20))
// maths.js
let maths = {};
maths.sum = function(x, y) {
return example.base + x + y;
}
export {maths};
预期结果:index.js 输出
/**
* License ...
*/
let numbers = {};
numbers.property = "This is a static variable";
numbers.base = 1000;
let maths = {};
maths.sum = function(x, y) {
return example.base + x + y;
};
numbers.maths = maths;
console.log(numbers.maths.sum(10, 20));
真实结果:index.js 输出
let maths = {};
maths.sum = function(x, y) {
return example.base + x + y;
};
/**
* License ...
*/
let numbers = {};
numbers.property = "This is a static variable";
numbers.base = 1000;
numbers.maths = maths;
console.log(numbers.maths.sum(10, 20));
请注意,汇总不遵循导入中的代码顺序。这对于同步代码很重要。
【问题讨论】:
-
您能否添加更多细节,最好是您输入的代码示例以及您想要的输出是什么?
-
@ed。我试图用最概括、最准确的方式来解释它。
-
您能解释一下为什么 Rollup 输出的订单对您不起作用 - 我觉得不错?另外我不确定你所说的“同步代码”是什么意思。
-
我去年开始了一个个人项目(我打算在未来发布),大约有 10k 行。很难维护,特别是因为我是半个初学者。我发现它的方法是将代码分成模块,分配几个不同的变量以使导出可行。但是代码从头到尾遵循编写时的确切执行顺序(与此不同的方法会导致错误)。也就是说,Rollup 导入的方式会导致问题。 [1]
-
而且,毕竟它在美学上也不有趣,因为即使是应该在文件顶部的许可证,最终也会被纠缠在代码中间。我所需要的只是让 Rollup 在调用它们的确切位置导入。这就是我迷失的地方。 [结束]
标签: javascript rollup rollupjs