课程章节介绍
今天我们来聊一聊 LWC 编译器是怎么找到模块入口文件的。这其实有个很明确的规则,你只要记住一点:,导入的时候,永远只写模块文件夹的名字,千万别写里面的具体文件名,。
比如你写 `import { X } from 'c/moduleName'`,编译器一看到这个,就会先去文件夹里找 `moduleName.js`。如果找到了,好,它就是入口文件。如果找不到 `.js` 文件呢?它还会再试一次,看看有没有 `moduleName.css`,这个主要是给那种只有样式的模块准备的。要是连 `.css` 都没有,那就直接报错,编译失败。
所以,重点就在于,像 `c/utils/utils.js`、`c/utils/other.js` 或者只写到 `c/utils/utils` 这种写法,全都是无效的,编译器不认。正确的做法就是简单写 `c/utils`,然后编译器会自动解析到 `utils.js` 作为入口。
这种设计其实是为了强制封装。模块里面的文件结构,那是它自己的事,外面使用的人根本不需要关心。只要通过这个模块的公共接口,也就是入口点,来用它暴露出来的东西就好了。这样每个模块的内部实现可以随便改,只要入口不动,就不影响别的代码。
用一句话总结就是:,导入模块时,用文件夹名,别碰文件名,编译器会帮你找 `.js`,找不到就 `.css`,再没有就罢工。,
关键词
LWC
Lightning Web Components
Salesforce