首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >像一个大JS一样使用文件夹中的所有文件

像一个大JS一样使用文件夹中的所有文件
EN

Stack Overflow用户
提问于 2019-06-16 01:22:03
回答 2查看 561关注 0票数 8

是否可以在ESLint中配置WebStorm,以便从同一个文件夹中的文件中解析函数、变量等?在构建过程中,我将同一文件夹中的所有文件连接到大闭包中,例如:

代码语言:javascript
运行
AI代码解释
复制
   src/
      main/          ===> "main.js"
          api.js
          init.js
          ui.js
          constants.js
          .
          .
      renderer/      ===> "renderer.js"
          core.js
          events.js

我希望ESLint将所有这些文件处理得像一个文件一样,这样我就不会对定义的东西产生"undef“错误。

如果不能自动完成,我不介意创建一个手动配置,如果可能的话,可以指定所有这些文件。

编辑:为什么我不能(不能)使用模块?TLDR-遗留代码和项目需求。

  • 我需要缩小所有代码。当前的闭包编译器可以将ES6转换为ES5,但是我发现一些ES6特性很容易产生错误的代码。所以我不得不使用ES5。
  • 因为我需要ES5。我只能使用require()来使用模块。这是一个问题,因为require()是一个动态的包含,它影响到我的上下文的性能(普通功率设备的大电子应用程序)

因此,要回答@Avin_Kavish,我同意我所做的“技术上不符合”,但是在构建过程的最后,它是这样的,因为每个文件夹都被分组到一个文件中。该文件是模块或脚本。为了将使用Gradle插件https://github.com/eriwen/gradle-js-plugin的文件分组,我按我想要的顺序插入了一个“闭包头”和一个“闭包页脚”,以及所有的文件。

尽管带来不便,最后我还是得到了超紧凑的nodeJS代码,所有的方法都被混淆了,等等。

最后我使用了@Patrick的建议,谢谢你!

编辑2

WebPack +电子-WebPack原来就是我要找的。

顺便说一句,我认为正确的方法是如果EsLint允许一个“文件夹”sourceType。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-06-16 02:27:34

您没有在问题中提供代码示例,但我假设您会这样做:

api.js

代码语言:javascript
运行
AI代码解释
复制
const api = {
  fetchData() {
    // some code that fetches data
  }
};

core.js

代码语言:javascript
运行
AI代码解释
复制
const core = {
  init() {
    api.fetchData();
  }
};

当您链接这些ESLint模块时导致错误的JavaScript规则是非德夫规则。

它检查未定义的使用的变量。在上面的代码示例core.js中,这将是api,因为这是在另一个模块中定义的,ESLint不知道这个模块。

您并不关心这些错误,因为在生产中使用的实际JS包中,来自api.js和core.js的代码被连接在一个包中,因此将定义api

因此,实际上,本例中的api是一个全局变量。

no-undef规则允许您定义全局变量,以便它们不会导致错误。

有两种方法可以做到这一点:

使用注释的

在core.js模块的开头,添加以下一行:

代码语言:javascript
运行
AI代码解释
复制
/* global api */

使用ESLint Config

如前所述,这里 --将其添加到.eslintrc文件中:

代码语言:javascript
运行
AI代码解释
复制
{
  "globals": {
    "api": "writable"
  }
}

边注

正如对您的问题的一些评论者所指出的,最好在模块中使用导入导出语句,以及像webpack这样的模块捆绑工具,从JavaScript模块创建一个包。

票数 4
EN

Stack Overflow用户

发布于 2019-06-16 02:49:06

带有导入/导出语句的物理JavaScript文件按照标准是一个模块。一个没有导入/导出的.js文件按照标准是一个脚本。您所要做的是不符合这一点,在ECMAScript中没有允许在多个文件中拆分单个脚本或模块的规范。例如,我了解您来自何处: C#有部分类,允许您在多个文件中拆分一个类。但是,尝试在没有标准语法的情况下复制这一点是不明智的。特别是当导入/导出能够并且将为您完成此工作时。

例如,根据以下假设,您的main.js可以重构为,

代码语言:javascript
运行
AI代码解释
复制
constants.js // <--- constants
ui.js  // <--- logic to build UI
api.js  // <--- exposing public api
init.js  // <--- setup code before use

// main.js 
// If you name this index.js you can import it as 'src/main' instead of 'src/main/main.js'
import { A,B } from './constants'
import { api } from './api'
import { displayUi } from './ui'
import { init } from './init'

init(A);
displayUi(B);

export { api } // <-- re-expose public api
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56617576

复制
相关文章
限制堆栈的堆栈排序
原文题目:Stack sorting with restricted stacks
Jarvis Cocker
2019/07/19
1.2K0
java 堆栈的声明_Java 堆栈[通俗易懂]
堆栈是一种线性数据结构,用于存储对象的集合。它基于先进先出(LIFO)。 Java集合框架提供了许多接口和类来存储对象的集合。其中之一是Stack类,它提供了不同的操作,例如推,弹出,搜索等。
全栈程序员站长
2022/09/08
1.7K0
java 堆栈的声明_Java 堆栈[通俗易懂]
堆栈的实现
进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。
小雨的分享社区
2022/10/26
7370
Java 数组实现堆栈操作
class Stack { private int stck[] ; private int tos ; Stack(int size) { // 一个参数的构造参数 stck = new int[size] ; // 创建数组(创建堆栈) tos = -1 ; // 空堆栈标识 -1 } // 堆栈操作的特性:先进后出、后进先出 void push(int item) { // 入栈
Mirror王宇阳
2020/11/13
5860
堆栈的分布
High Addresses ---> .----------------------. | Environment | |----------------------| | | Functions and variable are declared | STACK
用户4645519
2020/09/08
7140
堆栈
堆栈(英语:stack)又称为栈或堆叠,是计算机科学中的一种抽象数据类型,只允许在有序的线性数据集合的一端(称为堆栈顶端,英语:top)进行加入数据(英语:push)和移除数据(英语:pop)的运算。因而按照后进先出(LIFO, Last In First Out)的原理运作。
王小明_HIT
2020/04/21
1.1K0
堆栈
Js中的堆栈
堆heap是动态分配的内存,大小不定也不会自动释放,栈stack为自动分配的内存空间,在代码执行过程中自动释放。
WindRunnerMax
2020/08/27
3.2K0
Go 堆栈的理解
堆:堆可以被看成是一棵树,如:堆排序。在队列中,调度程序反复提取队列中第一个作业并运行,因为实际情况中某些时间较短的任务将等待很长时间才能结束,或者某些不短小,但具有重要性的作业,同样应当具有优先权。堆即为解决此类问题设计的一种数据结构。
孤烟
2020/09/27
1.5K0
java堆栈的区别
栈:一般存放基本数据类型和对象的引用(常量对象/字符串也可能在常量池中) 堆:一般存放new("对象") new的对象
用户9131103
2023/07/17
1250
堆栈溢出排查
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/d5000/eas/easDmSync/heapdump.hprof
全栈程序员站长
2022/11/15
1K0
堆栈溢出排查
Lua调用C++时打印堆栈信息
公司的手游项目,使用的是基于cocos2d-x绑lua的解决方案(参数quick-x的绑定),虽然使用了lua进行开发,更新很爽了,但是崩溃依然较为严重,从后台查看崩溃日志时,基本上只能靠“猜”来复现bug。更为郁闷的是很多时候并没有使用log输出,在崩溃日志里还无法查看大概在哪一步操作崩溃的…
meteoric
2018/11/20
2.9K0
NPN_InvalidateRect的堆栈
node.dll!content::WebSchedulerImpl::postTimerTask(const blink::WebTraceLocation & location, blink::WebThread::Task * task, __int64 delayMs) 行 64 C++ node.dll!blink::TimerBase::setNextFireTime(double now, double delay) 行 113 C++ node.dll!blink::TimerBase::start(double nextFireInterval, double repeatInterval, const blink::WebTraceLocation & caller) 行 67 C++ node.dll!content::WebPluginImpl::invalidateRect(_NPRect * rect) 行 958 C++ > node.dll!NPN_InvalidateRect(_NPP * instance, _NPRect * invalidRect) 行 127 C++
龙泉寺扫地僧
2019/02/20
4780
js堆栈溢出的问题
    js是最令程序员头疼的问题了,不是语法也不是使用头疼,而是调试头疼,虽然有很方便的各种各样的调试工具,但经管这样有时候一个疏忽的小问题,会导致各种各样的奇怪问题的出现,今天笔者的同事就出现了这样的问题,苦闷了整整一天才找到了真正的问题。     出现js堆栈溢出的问题一般的情况有两种:       1.检查自己的js代码看代码中有没有死循环。     2.代码中引用了jQuery-1.4.2.min.js这个js实现一些动态效果或者是辅助,这个版本的jQuery就存在这样的问题(同事就是遇到了这个问
磊哥
2018/04/26
1.8K0
内部异常堆栈跟踪的结尾_异常堆栈跟踪不可用
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说内部异常堆栈跟踪的结尾_异常堆栈跟踪不可用,希望能够帮助大家进步!!!
Java架构师必看
2022/09/12
2.6K0
堆栈操作合法性 C++
假设以S和X分别表示入栈和出栈操作。如果根据一个仅由S和X构成的序列,对一个空堆栈进行操作,相应操作均可行(如没有出现删除时栈空)且最后状态也是栈空,则称该序列是合法的堆栈操作序列。请编写程序,输入S和X序列,判断该序列是否合法。
叶茂林
2023/07/30
2230
SpringBoot详细打印启动时异常堆栈信息
SpringBoot在项目启动时如果遇到异常并不能友好的打印出具体的堆栈错误信息,我们只能查看到简单的错误消息,以致于并不能及时解决发生的问题,针对这个问题SpringBoot提供了故障分析仪的概念(failure-analyzer),内部根据不同类型的异常提供了一些实现,我们如果想自定义该怎么去做?
恒宇少年
2019/10/08
1.4K0
SpringBoot详细打印启动时异常堆栈信息
定位生产问题时,异常堆栈莫名丢了,何解?
今天分享的这个知识有点冷,相信很多 Java 程序员很少遇到,废话不多说,直接进入排查问题的真实讨论现场。
一猿小讲
2020/08/18
1.3K0
定位生产问题时,异常堆栈莫名丢了,何解?
JAVA 堆栈类(Stack)的使用
出处:https://www.cnblogs.com/JJCS/p/3480982.html
用户7886150
2021/04/27
2K0
51单片机 堆栈与堆栈指针[通俗易懂]
堆栈是一种执行“先入后出”算法的数据结构。是在内存中的一个存储区域,数据一个一个顺序地存入(也就是“压入—PUSH”)这个区域之中。
全栈程序员站长
2022/11/03
2.8K0
Python实现堆栈
堆栈是一个后进先出的数据结构,其工作方式就像一堆汽车排队进去一个死胡同里面,最先进去的一定是最后出来。
一墨编程学习
2018/11/21
9070

相似问题

Qt、GCC、SSE和堆栈对齐

28

什么是“堆栈对齐”?

33

带堆栈操作的GCC内嵌组件

30

gcc x86窗口堆栈对齐

215

堆栈对齐是如何工作的?

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档