我具有以下目录结构:
- modules/ |
|--- a
|---- p.jsx
|---- a_directory/not_to_export.jsx
|-----q.jsx
|
|--- b
|---- r.jsx
|-----s.jsx
|
|--- c
|---- t.jsx
一个简单的问题是-如何将每个模块及其路径导出到webpack中以便在webbrowser中使用。
示例:require('a/p.jsx')
应该返回对p模块的引用。
更详尽的目标:
a/p.jsx
,a/q.jsx
,b/r.jsx
,b/s.jsx
,c/t.jsx
。a/p.jsx
。 require("a/p.jsx")
可以在构建外部使用,而不仅仅是导出入口点。这种行为与早午餐产生的行为非常相似,唯一的问题是早午餐不支持条件的require / import语句。
答案 0 :(得分:1)
每个顶级jsx,都应视为模块,例如:
a/p.jsx
,a/q.jsx
,b/r.jsx
,b/s.jsx
,c/t.jsx
。实际上应该使用以下路径来引用所有这些模块,例如:在
b/r.jsx
中,我要访问a/p.jsx
。
要配置wepack如何解析绝对路径,请参见resolve option。您必须将modules文件夹添加到解析器。因此,在您的webpack配置中添加:
module.exports = {
//...
resolve: {
modules: ['node_modules', 'modules']
}
};
我假定您的modules
文件夹与node_modules
文件夹处于同一级别。
所有内容都编译为单个
jsx
,基本上要求语句是同步的。需要出口。
要构建与节点js一起使用,请使用target选项:
module.exports = {
target: 'node'
};