这是有效的:

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条语句才能可靠地工作.模块说明符必须是字符串文字.

但是,您 Select 的模块加载器应该支持使用变量名动态加载模块.您将无法在模块作用域中获取绑定的app标识符,但是(并且无法重新导出),它通常只能在回调中使用.

Node.js相关问答推荐

意外标识符断言Shopify Remix应用程序

monorepo内的NPM包使用不在注册表中的本地包

在 azure blob 容器之间复制文件

如何避免在 mongodb 聚合中查找重复结果?

(Mongoose) 删除 TTL 字段失败

使用 create-expo-app 时如何更改 webpack-config.js 中的哈希函数?

图像存储在后端文件夹中,但使用 multer 和 react.js 在前端找不到

AJAX 和 Node JS:在我的服务器中接收空数据

Aptana Studio 是否有 NodeJS 插件?

如何使用 Puppeteer 从输入中删除现有文本?

构建 vue cli 后如何运行生产站点

容器之间的 Docker HTTP 请求

使用 Socket.io 将客户端连接到服务器

Passport 登录和持久会话

如何将子集合添加到 Firestore 中的文档?

密码的 Node.js 散列

TypeError:请求路径包含未转义的字符,我该如何解决这个问题

node 应用程序是否有任何独立的 gui 模块

如何在 MongoDB 中查询引用的对象?

Node应用程序中相同npm包的两个版本