导入js模块执行css文件

时间:2019-11-12 20:26:37

标签: javascript ecmascript-6 es6-modules

我正在尝试创建一个可以导入类似模块的索引文件。

例如

import { foo } from './random';
// or
import bar from './random';

所以我在random/中有index.js文件

import bar from './bar';
import foo from './foo';

export {
  foo 
};

export default DefaultSurvey;

效果很好,但是我有一个小问题。

foo.js扩展了bar.js

import './Foo.scss';
export default class Foo extends Bar

问题出在这里:

import foo from './foo';

如果我尝试import bar from './random';

foo.js中的css适用于默认导出。为什么?

1 个答案:

答案 0 :(得分:0)

首先,为什么这是一个问题?难道不是所有的CSS加载?除非,您想有条件地加载某些css文件,这是另一个问题。

也许我的问题全都错了,如果可以的话,请纠正我,但是当您从random/,即import bar from './random';导入默认导出时,您还将在其中执行所有导入模块,即导入所有依赖项。由于您要在foo from './foo';模块中导入random/,并在foo.js中导入css,因此在引用random/模块时将加载这些依赖项。

为避免循环依赖,我建议将所有导入的css文件放入一个文件,例如索引文件。这样,您就可以避免意外的行为。