Fél*_*anz 47 javascript module node.js ecmascript-6
这有效:
import app from './../app.js';
Run Code Online (Sandbox Code Playgroud)
但这不是:
import app from path.join(process.cwd(), 'app');
Run Code Online (Sandbox Code Playgroud)
我越来越:
SyntaxError: /path/file.js: Unexpected token (5:16)
> 5 | import app from path.join(process.cwd(), 'app');
| ^
Run Code Online (Sandbox Code Playgroud)
有可能(和/或如何)使用"动态"路径?(不是硬编码路径或依赖相对路径).
Ber*_*rgi 52
不,这是不可能的.ES6模块需要能够静态解析其依赖关系,而无需执行模块代码,以便import语句可靠地工作.模块说明符必须是字符串文字.
但是,您选择的模块加载器应支持动态加载具有变量名称的模块.但是,您无法app在模块范围内获取绑定标识符(并且无法重新导出它),它通常只能在回调中使用.
log*_*yth 12
ES6导入是声明性的,用于静态分析.他们不能动态.
一般来说,期望是如果你有一些条件导入,底层路径解析逻辑的责任是根据某个静态路径决定加载哪个模块.
那或你使用异步模块加载器而不是声明导入.
| 归档时间: |
|
| 查看次数: |
34498 次 |
| 最近记录: |