// before
module.exports = require('./inner.js');
// nowadays
export default from './inner.js';
我正在尝试这样做,但 babel 只允许在 es7 第 1 阶段这样做,因为它是 目前的提案。所以现在,我坚持这两行:
import sticker from './box-sticker.jsx';
export default sticker;
我可以将它们缩短为 1 吗?
你应该能够做到
export {default as default} from './inner.js';
// or even
export {default} from './inner.js';
具有当前的 ES6 语义。
但是我不认为使用 ES 下一个提案有什么问题,我非常有信心它会进入 ES7 ES8。
简短回答:
不要。
避免一对一的进出口。
直接导入内容,无需中间索引文件:
import inner from './inner.js';
长答案:
我认为现在给定的模式带来的危害远大于提供的任何好处 - 即用无意义的 index.js 文件填充存储库,使 IDE 中的索引变得更加困难。
有:
// MyComponent/inner.js
export default function MyComponent() {};
// MyComponent/index.js
export {default} from './inner.js';
// usage:
import MyComponent from './MyComponent';
与以下内容相同(但仍少 1 个文件):
// MyComponent/inner.js
export default function MyComponent() {};
// usage:
import MyComponent from './MyComponent/inner.js';
import MyComponent from './MyComponent/inner';
如今也可以与大多数捆绑程序一起使用(但是,对于直接使用 /node、deno、浏览器/ 扩展,仍然需要。