【发布时间】:2017-05-11 07:39:56
【问题描述】:
我有一个包正在构建到名为lib 的目录中。结构如下:
- lib/
-- moduleA/
---- index.js
-- moduleB/
---- index.js
- src/
-- moduleA/
-- moduleB/
在package.json 我指定:
"main": "./lib"
在另一个项目中,我尝试从上面的包中导入特定模块,如下:
import moduleA from '@scope/packageA/moduleA';
但是 Webpack 无法解析模块,说:
找不到模块:错误:无法解析“@scope/packageA/moduleA”
但是,如果我直接从lib 导入,它确实有效:
import moduleA from '@scope/packageA/lib/moduleA;
为什么会这样?我的理解是 Webpack 尊重包的 main 条目,并且应该可以从入口点开始从层次结构中的任何位置导入。
【问题讨论】:
-
main 只是一个指向单个入口点文件的指针:
@scope/packageA/lib/index.js大概。它不能是目录,因此您不能向导入添加路径并期望它相对于它被解析。你的第二个import是正确的。
标签: javascript npm webpack ecmascript-6 babeljs