从带有 index.js 的“/folder”导入 JavaScript

javascript import from '/folder' with index.js

本文关键字:folder 导入 JavaScript index js      更新时间:2023-09-26

我注意到一些情况,我看到了类似以下内容:

// /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'的最后一个"文件" - 有些人似乎认为这应该从索引.js文件中导入default export

这实际上是规范的一部分吗? - 我的解释/问题是,这是许多人使用 WebPack v1 的结果,它将import语句转换为 CommonJS 风格的 requires 语句?还是会在 WebPack v2 中中断"官方"import/export 支持?

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

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

这就是node的做法 - 当需要一个目录时,它将使用它index.js文件。像browserify或webpack这样的捆绑器遵循这个约定(出于兼容性的原因(。