[英]Difficulty with ES6 import / export syntax
I currently have a directory structure as follows, where + denotes a folder: 我目前的目录结构如下,其中+表示文件夹:
+ middleware
- index.js
+ tracking
- index.js
+ googleAnalytics
- index.js
- logPageView.js
- trackPanos.js
+ mixpanelAnalytics
- index.js
- trackUser.js
- index.js
The lowest level index.js
files in the googleAnalytics
and mixPanel
directories look like this: googleAnalytics
和mixPanel
目录中最低级别的index.js
文件如下所示:
--/middleware/tracking/googleAnalytics/index.js
import {logPageView} from './logPageView';
import {trackSignup} from './trackSignup';
export const googleAnalyticsMiddleware = [logPageView, trackSignup];
--/middleware/tracking/googleAnalytics/index.js
import {trackPanos} from './trackPanos';
export const mixpanelAnalyticsMiddleware = [trackPanos];
For some reason I'm able to successfully import things by directly looking up the relevant file paths . 出于某种原因,我能够通过直接查找相关的文件路径来成功导入内容 。 Here is the ROOT index.js: 这是ROOT index.js:
--/index.js
import {mixpanelAnalyticsMiddleware} from './middleware/tracking/mixpanelAnalytics';
import {googleAnalyticsMiddleware} from './middleware/tracking/googleAnalytics';
// This works! But notice how deep I have to dig.
Ideally I would want something like this: 理想情况下,我想要这样的东西:
// This does not work!
--/index.js
import * from './middleware';
--/middleware/index.js
export * from './tracking';
--/middleware/tracking/index.js
export * from './mixpanelAnalyticsMiddleware';
export * from './googleAnalyticsMiddleware';
You should use the import * as xxx
syntax. 您应该使用import * as xxx
语法。
So, when you have 所以,当你有
export const googleAnalyticsMiddleware = [logPageView, trackSignup];
export const mixpanelAnalyticsMiddleware = [trackPanos];
In the js file you are importing, then it would look like 在您要导入的js文件中,
import * as Middleware from './middleware/file/path';
// ...
Middleware.googleAnalyticsMiddleware.doSomething();
Middleware.mixpanelAnalyticsMiddleware.doSomething();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.