我习惯了require,但我正在玩es6模块。我决定改变我的目录结构,这意味着我必须去改变所有的import语句(import thing from "../thing"变成了import thing from "../../thing"等)。
require
import thing from "../thing"
import thing from "../../thing"
我不得不经历并改变了很多。使用node_modules,这绝不是问题。
您是否始终必须在es6模块中指定路径,或者是否存在某种用于查找模块的系统/操作顺序?
在ES6中没有直接等同于node_modules,这意味着不能从预定义的目录中按名称导入任何模块。没有这样的目录,因此必须通过路径导入模块。
node_modules
ES6模块的做法是将它们放在一个平面(ish)目录结构中,就像你用所有../thing更改创建的那样。
../thing
顺便说一句,捆绑商虚拟化这个过程,这就是为什么你可能不习惯看到import '../thing'
import '../thing'
如果您想同时支持ES6和Node.js样式模块,以及flat和node_modules目录结构,请查看此example及其介绍性的article。