2017-06-16 76 views
1

我的问题建路径是这样的:每当 我使用下面的语法里角 - >的WebPack 2角2 - 使用“规定”使用可变

let myCmp = 'test1'; 

let cmp = require('./components/'+myCmp+'/bootstrapCmp.component.ts'); 

我得到的所有组件在我的最终包中的组件文件夹内,不仅仅是'test1';

(我使用的AngularClass队的角2的WebPack入门包 - https://github.com/AngularClass/angular-starter

没有任何人这个问题太

我加载组件/所以是所有其他的都是基本。角2个组件

在此先感谢,我与它挣扎太多^^

+0

想想一般情况。 bundler如何预先知道哪些组件要包含在运行代码的包中? –

+0

你也可以阅读这个[讨论](https://github.com/webpack/webpack/issues/1421)。 –

+0

@YuryTarabanko感谢您的快速响应!我可以想到的唯一的答案,当你把它是这样的是通过使用webpack配置文件..有什么办法需要在webpack的配置文件中的相关文件,并在棱角的应用程序访问它们?以及为什么bunlder无法在需求路径中使用它时读取变量的值? –

回答

0

希望,我发现我自己的解决方案将帮助其他开发人员:

在webpack.common.js文件中,我已将新文件添加到我称为boot.js的入口对象。

所以结构是这样的:

entry: { 
    main:['./src/polyfills.browser.ts','./src/assets/boot.ts','./src/main.browser.ts'] 
} 

的boot.ts文件,包含与所有的relavent组件我将使用(参考文献)的对象。当我运行bunlder(wepback)时,无论何时我需要某个组件,我都会在boot.ts文件内创建这个对象,最终的捆绑包文件现在只包含我想要的组件。