【发布时间】:2017-01-06 14:27:22
【问题描述】:
我有以下称为代码样式的模块:
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。
【问题讨论】:
-
JS文件必须全部执行——不能随意阻止JS运行。您可以将其进一步拆分,或更改模块的使用方式。
-
好的,我明白了,你会如何分解它?
-
单独的文件。不过,IMO Ori 的解决方案更好——这是您可以明确控制函数何时被调用的唯一方法。
标签: import ecmascript-6 export browserify