【发布时间】:2017-08-10 17:38:05
【问题描述】:
在我们之前的 node.js 应用程序(基于 ES5)中,我们很难在 require 语句中使用相对路径。
例如:var conf = require('../../global/config');
相对路径的问题在代码混淆中被冒泡了。我们不得不花费大量时间来处理这个问题。
有了这个经验,在我们当前的 node.js 应用程序(基于 ES6)中,虽然我不确定我们是否会混淆代码,但我不想使用相对路径。因此,我在每个文件中创建了一个 const ROOTDIR 并为其分配了项目的绝对路径。然后意识到 import 在它的 fromClause 中只需要静态文字。通过强制输入(复制/粘贴)每个 import 的完整路径或使用相对路径返回或使用 require 语句,这让生活变得困难。
虽然我试图了解使用 import 样式的好处,但我需要一些帮助来理解以下 3 点。
使用import除了类似java/.net的编码风格还有什么好处?
为什么 import 只接受字符串文字?似乎是设计使然,如果是这样,为什么?
如果我想import一个基于某些条件的模块,我将不得不去require,因为我不能使用import 在 if/else 或 switch 语句中。有什么解决方案/黑客吗?
感谢所有帮助。
【问题讨论】:
-
您的目标是 node.js,不是吗?
require是特定于节点的 afaik -
@Psi 是的,更新了描述和标签。感谢您指出。
标签: javascript node.js ecmascript-6