Javascript 在Webpack中,导出文件如何不导入它导出的所有内容?

Javascript 在Webpack中,导出文件如何不导入它导出的所有内容?,javascript,ecmascript-6,webpack,Javascript,Ecmascript 6,Webpack,我有一个分为“模块”的项目 每个模块都有一个导出文件,该文件从模块导出多个文件 按照惯例,我们只需要模块中公开的内容 例如,如果我有“顶栏”和“工作区”模块,并且它们需要通信,“顶栏”仅公开index.js,而“工作区”需要其中所需的“顶栏”部分: TopBar/index.js: export TopBarComponent from './components/TopBarComponent' export SomethingElse from './service/SomethingEl

我有一个分为“模块”的项目

每个模块都有一个导出文件,该文件从模块导出多个文件

按照惯例,我们只需要模块中公开的内容

例如,如果我有“顶栏”和“工作区”模块,并且它们需要通信,“顶栏”仅公开index.js,而“工作区”需要其中所需的“顶栏”部分:

TopBar/index.js:

export TopBarComponent from './components/TopBarComponent'

export SomethingElse from './service/SomethingElse'
Workspace/components/Workspace.js:

import {TopBarComponent} from 'TopBarComponent'
....
虽然这样项目是非常模块化的,但我的问题是,当“工作区”需要“TopBarComponent”时,“SomethingElse”会被导入

假设每个模块的index.js都是一个导出文件,并且只有导出行,您有什么想法可以阻止它

让我简单地说

  • ES6导入/导出应该附带babel loader,因为它还不支持跨浏览器
  • 默认导出应在不使用{}的情况下导入,其他导出应使用{}
  • 我举了一个基本的例子,Main.js使用TopBarComponent 导出的值和TopBarComponent使用index.js导出的值。如果你遵循基本步骤,应该不会有任何问题

    如果你有

    请参阅下面的代码

    index.js

    TopBarComponent.js

    Main.js

    您只导出您想要的内容。未包含在中的rest代码 出口永远不会被进口


    对于webpack,只需完全省略
    index.js
    <代码>从最初定义的位置导入{TopBarComponent}。其他更简洁的绑定器(比如Webpack2,Rollup?)将执行树抖动以消除我们避免的未使用依赖项
    import{TopBarComponent}porpoise上的.././TopBar/components/TopBarComponent
    ,因此每个模块只导出它想要导出的部分,并且有一个不直接从其他模块导入的约定。我会检查webpack2。谢谢这个问题是关于“SomethingElse”在没有明确导入的情况下被导入的。唉!我指的是同一点。如果我错了,请纠正我。如果您采用从与另一个相同的文件内容导出的方法,我也不想尝试。即使您想导出整个文件,只需将其包装在一个函数中,并使用export语句使用export explicity,也不能得到除导出内容以外的任何其他内容。进出口相当安全!
    var something;
     var data = "index Data 1"
     export data
     export default "index Data 2"
    
    import defaultData , {data} from 'index'
    ...
    ..
    var topbardata = "something"
    export default {key : []};
    export topbardata ;
    
    import defaultData , {topbardata} from 'TopBarComponent'