Import es6如何仅从模块和don导入一个部件';不要执行其他部分

Import es6如何仅从模块和don导入一个部件';不要执行其他部分,import,ecmascript-6,export,browserify,Import,Ecmascript 6,Export,Browserify,我有以下称为代码样式的模块: import fs from "fs"; import css from "insert-css"; export var master = (function(){ let styles = fs.readFileSync(__dirname+"/sheets/master.css","utf8"); css(styles); return styles; })(); export var colors = (function(){

我有以下称为代码样式的模块:

import fs from "fs";
import css from "insert-css";

export var master = (function(){
    let styles = fs.readFileSync(__dirname+"/sheets/master.css","utf8");
    css(styles);
    return styles;
})();

export var colors =  (function(){
    let styles = fs.readFileSync(__dirname+"/sheets/colors.css","utf8");
    css(styles);
    return styles;
})();

export var banner =  (function(){
    let styles = fs.readFileSync(__dirname+"/sheets/colors.css","utf8");
    css(styles);
    return styles;
})();

export var busy1 = (function(){
    let styles = fs.readFileSync(__dirname+"/sheets/colors.css","utf8");
    css(styles);
    return styles;
})();
我确实:

import {master} from "code-style";
现在的问题是,模块中的所有函数都是在我导入时执行的,但我只想执行
master

我不知道如何做到这一点

我需要保持导入状态,不能在导入后添加传统代码,功能和函数调用必须留在模块内

有什么想法吗

非常感谢您的帮助

Ps:代码在客户端,使用browserify和babel。

您使用IIFEs(立即调用的函数表达式),JavaScript函数在定义后立即运行(在本例中导入)。将所有IIFE更改为函数,并在需要时调用它们

例如,这个:

export var colors =  (function(){
    let styles = fs.readFileSync(__dirname+"/sheets/colors.css","utf8");
    css(styles);
    return styles;
})();
应更改为:

export var colors = function(){
    let styles = fs.readFileSync(__dirname+"/sheets/colors.css","utf8");
    css(styles);
    return styles;
};
导入后,调用它,如下所示: 从“代码样式”导入{colors}; 颜色()

更改后,您将调用
master
,并调用以下函数:

import {master} from "code-style";
const masterCSS = master();

JS文件必须全部执行,不能任意停止JS的运行。您可以进一步分解它,或者更改模块的使用方式。好的,我明白了,您将如何分解它?分离文件。IMO-Ori的解决方案更好——这是唯一一种可以明确控制何时调用函数的方法。是的,我以前已经这样做过,现在想省去这个额外的调用。在这种情况下,需要额外的调用。