【发布时间】:2016-01-25 17:21:34
【问题描述】:
我有一个组件树,该树内部是__magic_names__ 文件夹(例如__tests__、__fixtures__ 等)。我想过滤掉这些__magic_names__ 文件夹中的所有文件。我正在使用 webpack 并使用 require.context 来获取我的组件 - 而且我不希望我的测试与我的生产代码一起发布。
我有以下正则表达式,应该过滤掉每个包含双下划线的文件路径。不幸的是,它也匹配带有__magic__ 文件夹的路径:
^./((?!=__)[^/]+?(?!=__)/)*((?!=__)[^/]+?(?!=__)).jsx?$
应该工作:
./SomeComponent.js
./SomeComponent.jsx
./SomeComponent/SomeComponent.js
./SomeComponent/SomeComponent.jsx
./SomeComponent/ChildComponent/Child.js
./SomeComponent/ChildComponent/Child.jsx
应该失败
./__magic__/SomeComponent.js
./__magic__/SomeComponent.jsx
./SomeComponent/__magic__/SomeComponent.js
./SomeComponent/__magic__/SomeComponent.jsx
./SomeComponent/__magic__/ChildComponent/Child.js
./SomeComponent/__magic__/ChildComponent/Child.jsx
./SomeComponent/ChildComponent/__magic__/Child.js
./SomeComponent/ChildComponent/__magic__/Child.jsx
Debuggex 以这种方式可视化它:
这里有一个指向Debuggex Demo 的链接,供那些想要更详细地使用它的人使用。
我做错了什么?
【问题讨论】:
标签: javascript regex reactjs webpack