当前位置: 首页 > 面试题库 >

使用ES6语法和动态路径导入模块

柴声
2023-03-14
问题内容

这有效:

import app from './../app.js';

但这不是:

import app from path.join(process.cwd(), 'app');

我越来越:

SyntaxError: /path/file.js: Unexpected token (5:16)
> 5 | import app from path.join(process.cwd(), 'app');
    |                 ^

是否可以(和/或如何)使用“动态”路径?(不对路径进行硬编码或依靠相对路径)。


问题答案:

不,这是不可能的。ES6模块需要能够静态解析其依赖关系,而无需执行模块代码,以便import语句能够可靠地工作。模块说明符必须是字符串文字。

但是,您选择的模块加载器应支持使用变量名动态加载模块。但是,您将无法app在模块范围中获得绑定标识符(并且无法重新导出它),通常只能在回调函数中使用它。



 类似资料:
  • 所以我有一个项目看起来是这样的: 这些都没用。的相对路径确实可以工作,但是公共模块的相对路径是维护的噩梦。 值得注意的是,我刚刚从TS 1.5更新到1.6:使用已经在1.5中工作过。不过,我在1.6音符中找不到任何关于这方面的突破性改变的提及。 >

  • 问题内容: 我正在尝试从其他目录动态导入模块。我正在从这个问题中得到答案。我在名为foo的目录中有一个名为bar的模块。主脚本将在foo的父目录中运行。 这是我到目前为止在测试脚本中拥有的代码(正在foo的父目录中运行) 和bar.py的代码 但是当我运行test.py时,出现此错误: 问题答案: 需要导入模块的路径名+文件名,您应该将源代码更改为以下代码之一:

  • 问题内容: 我开始认为这是不可能的,但是无论如何我都想问。 我想测试我的一个ES6模块以特定方式调用另一个ES6模块。有了茉莉花,这非常容易- 应用程式码: 和测试代码: 笑话相当于什么?我觉得这是一件很想做的简单的事,但是我一直在努力尝试弄清头发。 我最接近的是将s 替换为s,并将其移入测试/函数中。都不是我想做的事情。 为了获得加分,我希望在其中的功能为默认导出时使整个工作正常进行。但是,我知

  • 10.2. 导入路径 每个包是由一个全局唯一的字符串所标识的导入路径定位。出现在import语句中的导入路径也是字符串。 import ( "fmt" "math/rand" "encoding/json" "golang.org/x/net/html" "github.com/go-sql-driver/mysql" ) 就像我们在2.6.1节提到过

  • 本文向大家介绍python根据路径导入模块的方法,包括了python根据路径导入模块的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python根据路径导入模块的方法,分享给大家供大家参考。具体方法如下: 常规做法如下: 而要直接通过路径 使用时使用util.method,此时并没有定义method method = util.method后才可以直接用method 希望本文所述对大

  • 过去,每当我想在Node.js应用程序中拥有相对路径时,我都会使用。如果我通过格式使用ES模块,在某个目录路径变为相对路径时,我如何具有相同的功能? 另一种方法是,我是否能够将别名分配给目录,使所有相对路径都与该别名相关,就像是相对于当前目录的路径的别名一样。