Node.js-仅导入功能,不运行整个文件

usermod3

我只是注意到了一些事情,想了解为什么节点会以这种方式表现。

我有2个文件,如下所示:

src/api/index-api.ts src/worker/index-worker.ts

他们都有一个简单的 console.log('Started xxx')

我注意到的是,当我跑node build/api/index-api.js-我看到这两个Started APIStarted Worker在控制台中。

我发现其中src/api/index-api.ts有一条import语句使用以下函数src/api/index-worker.ts

import { getContentFunction } from '../worker';

因此,我可以了解为什么他们都被称为。

但是,这的实际作用到底是什么?我的意思是确切发生了什么,为什么会这样呢?据我所知,我只是在导入特定的功能。

谢谢。

Xenthys

我假设您的console.log呼叫位于src/worker/index-worker.ts文件的根目录。

导入函数时,也会运行目标文件的全局命名空间中的任何声明,因为每个示例也可以实例化变量。导入单个函数并不能防止这种情况,仅意味着您只想保留对指定函数的引用,而不是对所有函数的引用。它还允许您将上述函数导入到全局名称空间中,而不必像worker.getContentFunction每个示例那样。

TL; DR:您的工作程序文件仍然完全运行,您的导入仅决定您保留哪些引用。


关于CommonJS的注意事项:module.exports = {...}文件末尾语句设置文件导出的内容,该文件的运行方式与其中的任何其他代码相同。如果导入的文件不能完全运行,那么这样的声明本身肯定是没有用的。解释器必须知道文件中的内容,以便它可以执行您要求的操作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

是否可以在node.js中要求一个功能而不执行整个所需文件?

来自分类Dev

Node-Webkit仅运行.js文件?

来自分类Dev

Node-Webkit仅运行.js文件?

来自分类Dev

从终端在node.js文件中运行单独的功能

来自分类Dev

Node js写入文件

来自分类Dev

从姊妹文件 Node.JS 导入函数

来自分类Dev

使用 node js 导入 React 组件文件

来自分类Dev

node.js中的导入功能运行单元测试中为只读

来自分类Dev

运行当前的node.js文件

来自分类Dev

Node.js module.exports不导出整个对象

来自分类Dev

导入/导出模块-Node JS / Discord JS

来自分类Dev

使用Node JS导出功能

来自分类Dev

Node.js功能范围

来自分类Dev

无法在Mac上使用node.js运行js文件

来自分类Dev

在Node JS中上传文件

来自分类Dev

从js文件执行node命令

来自分类Dev

在Node JS中包含从属JS文件

来自分类Dev

在Node JS中包含从属JS文件

来自分类Dev

使用 node.js 的 AWS Lambda 不执行承诺功能

来自分类Dev

node.js在子进程中运行功能?

来自分类Dev

在node.js中导入sql文件并针对PostgreSQL执行

来自分类Dev

使用Node.js Gulp在Less中导入.css文件

来自分类Dev

使用Node JS从URL导入JSON文件(Express)

来自分类Dev

无法在Node.js中导入车把文件

来自分类Dev

无法导入Node.js中的Typescript文件

来自分类Dev

无法将node-XMLHttpRequest导入Node.js

来自分类Dev

在Node.js中的文件之间模块化功能

来自分类Dev

在 Node.js 中包含不同文件的功能

来自分类Dev

在Node.js中上传多个文件(不包含multer)?