Javascript 汇总:按顺序打包

Javascript 汇总:按顺序打包,javascript,rollup,rollupjs,Javascript,Rollup,Rollupjs,几天来,我一直在努力熟悉罗拉,有一件事让我感到困惑。Rollup始终将导入脚本的内容分组在文件的开头,而不考虑将其导入到的文件末尾的正确位置。对于非常长的同步脚本,这是一个问题 Rollup不支持此功能,或者我不确定如何正确配置它 我通过CLI和设置文件(rollup.config.js)使用它。它工作得很好,除了我上面提到的情况 你能帮忙吗 编辑: 首先,这仅仅是一个例子 假设我有两个文件,一个名为index.js,另一个名为math.js,后者由第一个导入 //index.js /** *

几天来,我一直在努力熟悉罗拉,有一件事让我感到困惑。Rollup始终将导入脚本的内容分组在文件的开头,而不考虑将其导入到的文件末尾的正确位置。对于非常长的同步脚本,这是一个问题

Rollup不支持此功能,或者我不确定如何正确配置它

我通过CLI和设置文件(rollup.config.js)使用它。它工作得很好,除了我上面提到的情况

你能帮忙吗

编辑: 首先,这仅仅是一个例子

假设我有两个文件,一个名为
index.js
,另一个名为
math.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))
//数学.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));
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));
实际结果: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));
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));

请注意,汇总不遵循导入中代码的顺序。这对于同步代码很重要。

汇总遵循规范。当您在浏览器中使用本机模块加载程序时,如果
index.js
导入
math.js
,则将在执行
index.js
之前加载并执行
math.js
。(如果
math.js
有自己的依赖项,它们也将首先被加载和执行,等等)

因此,如果您希望在导入声明之前运行某些代码,则必须将该代码放在不同的模块中,然后首先导入:

//numbers.js
导出let编号={};
numbers.property=“这是一个静态变量”;
数字。基数=1000;
//index.js
从“./numbers”导入{numbers};
从“./maths”导入{maths};
数学=数学;
控制台。日志(数字。数学。总和(10,20))

汇总遵循规范。当您在浏览器中使用本机模块加载器时,如果
index.js
导入
math.js
,则将在执行
index.js
之前加载并执行
math.js
。(如果
math.js
有自己的依赖项,它们也将首先被加载和执行,等等)

因此,如果您希望在导入声明之前运行某些代码,则必须将该代码放在不同的模块中,然后首先导入:

//numbers.js
导出let编号={};
numbers.property=“这是一个静态变量”;
数字。基数=1000;
//index.js
从“./numbers”导入{numbers};
从“./maths”导入{maths};
数学=数学;
控制台。日志(数字。数学。总和(10,20))

您能否添加更多的细节,理想情况下是输入的代码样本,以及您想要的输出是什么?@ed。我试图以最概括、最精确的方式解释它。您能否解释为什么汇总输出的顺序对您不起作用?我觉得很好?另外,我不知道你所说的“同步代码”是什么意思。我去年开始了一个个人项目(我打算在将来发布),大约有10000行。这很难维持,特别是因为我是半初学者。我发现的方法是将代码分成模块,分配几个不同的变量以使导出可行。但代码从头到尾都遵循编写时的确切执行顺序(与此不同的方法会导致错误)。也就是说,汇总导入的方式会导致问题。(1),毕竟,它也不是美学上有趣的,因为即使是应该在文件顶部的许可,最终被纠缠在代码的中间。我只需要在调用它们的确切位置导入Rollup。这就是我迷路的地方。[end]你能不能添加一些更详细的信息,最好是输入的代码样本,以及你想要的输出是什么?@ed。我试图用最概括、最精确的方式解释它。你能解释一下为什么汇总输出的顺序对你不起作用吗?我觉得很好?另外,我不知道你所说的“同步代码”是什么意思。我去年开始了一个个人项目(我打算在将来发布),大约有10000行。这很难维持,特别是因为我是半初学者。我发现的方法是将代码分成模块,分配几个不同的变量以使导出可行。但代码从头到尾都遵循编写时的确切执行顺序(与此不同的方法会导致错误)。也就是说,汇总导入的方式会导致问题。(1),毕竟,它也不是美学上有趣的,因为即使是应该在文件顶部的许可,最终被纠缠在代码的中间。我只需要在调用它们的确切位置导入Rollup。这就是我迷路的地方。[结束]我试过了,但效果不太好。是否没有使汇总行为不同的配置?还是另一个绑定器?这就是模块的工作方式。不要反抗。如果有另一个捆绑包商有你所寻求的不正确行为(我认为没有),它将在其他方面导致你后悔。我试过了,但效果不太好。是否没有使汇总行为不同的配置?还是另一个绑定器?这就是模块的工作方式。不要反抗。如果有另一个捆绑包商有你所寻求的不正确行为(我认为没有),它将在其他方面导致你后悔。只要修改你的程序