使用 index.js 从“/文件夹”导入 javascript

IT技术 javascript ecmascript-6 webpack
2021-02-21 19:09:01

我注意到一些案例,其中我看到了以下内容:

// /reducers/reducer1.js
export default function reducer1(state = {}, action){
  // etc...
}
  
// /reducers/reducer2.js
export default function reducer2(state = {}, action){
  // etc...
}

// /reducers/index.js
import { combineReducers } from 'redux';
import reducer1 from './reducer1';
import reducer2 from './reducer2';

export default combineReducers({
  reducer1,
  reducer2
})
  
// /store.js
import masterReducer from './reducers';

export default function makeStore(){
  // etc...
}

注意我们调用的最后一个“文件” import masterReducer from './reducers'——有些人似乎认为这应该default export从 index.js 文件中导入

这实际上是规范的一部分吗?- 我的解释/问题是,这是许多人使用 WebPack v1 将import语句转换为 CommonJS 样式requires语句的结果?或者这会在具有“官方” import/export支持的WebPack v2 中中断吗?

1个回答

这实际上是规范的一部分吗?

不。module标识符('./reducers'在您的情况下)如何解析为实际module由module加载器/捆绑器的实现决定,ES6 没有具体说明。而且它似乎也没有在CommonJs指定

这就是节点的工作方式 - 当需要目录时,index.js将使用它的文件。像捆扎机browserify的WebPack遵循了这一约定(compat的原因)。

@FelixKling:啊,我什至没看那个。你有链接吗,我找不到那个配置?
2021-05-01 19:09:01
啊,我想我误解了这个问题(真的应该看标题)。fwiw,webpack 可以配置为解析其他文件而不是index.js.
2021-05-07 19:09:01
嗯,再看一遍后,我想它会出现在 webpack 2.0 中,而不是在当前版本中。
2021-05-20 19:09:01