我想使用每个文件一个类的javascript类。它是使用eslint的大型项目的一部分。我开始时:
/*global CSReport*/
/*global CSManager*/
class CSMain {
constructor() {
this.report = new CSReport();
this.manager = new CSManager(this.report);
}
launchReport(...
}
但是,eslint会生成错误,说明CSMain已定义但从未使用过。这导致使用导出和导入的想法似乎比使一切全局更好(旁注:主要面前的CS是避免全局冲突的旧式方法)
问题是如何把它放在一起。发布版本将是一个(uglified)文件,因此当它们在(例如)csCompiled.js中连接在一起时,类文件名将不再存在。
问题:
我试图找到答案,但我只找到不使用ecmascript 6和课程的旧帖子。如果答案存在,我不知道该怎么做。
背景:
主项目使用角度1.由于遗留原因,此代码是分开的。它目前用java编写,使用gwt,但我们想转移到javascript以消除对gwt的依赖。它总共转换了大约30-40个文件(类)。
代码从服务器获取并处理来自报告请求的数据。在将其交还给UI的其余部分之前,已经进行了大量的预处理。
我使用javascript为已建立的项目使用angular,但缺乏如何创建新项目的专业知识。
我正在尝试使用基本的javascript,所以如果(例如)我们从angular 1转到当前版本,它就不会需要更新。我还不知道这是否是一个很好的方法。
答案 0 :(得分:0)
ESLint抱怨是因为您没有导出您创建的类,因此,其他模块无法访问它。你可以用最后一行简单的方法解决这个问题
export default CSMain;
导入使用文件名。我应该使用CSCompiled.js名称吗? 比串联前的文件名?
在编译/ transpile / uglify / etc之前使用文件名。之后它将全部变为1个文件,捆绑商将为您处理。
我是否需要每个班级的单个模块或模块?
完全可选,我喜欢每个文件有1个类,然后是1个文件(index.js),列出该模块中的所有类。
我是否需要导出每个类并导入它使用的每个类?
是的,您需要导入模块将使用的所有内容,并导出所有应该公开的内容或“可导入”其他模块。
我不完全确定角度如何访问此代码但我想要导入csMain。
这一切都取决于您如何导出文件。确保导入模块/文件导出的相同名称。