ES6导入:获取外部项目的更新

时间:2015-11-09 15:35:24

标签: node.js typescript gulp ecmascript-6

我们正在使用angular2,typescript和gulp开始一个新项目。目前,我们的应用程序将包含两个子项目:组件库(将来可能将其拆分为单独的项目)和使用组件库的应用程序。 项目的布局将是如此:

/project_root
    /component_library
       /src
            /library
                /components 
                /services
                ... etc
    /application
        /src
           /app_name
               /components
               /services
                ... etc

应用程序中的组件将使用库中的组件(但不是相反) 我们希望在从库中导入内容时在应用程序组件中进行干净(非相对)导入(我们希望避免难看的导入类型'../../../component_library/src/library ...等'而且,更重要的是,我们希望能够将库代码移动到单独的项目而无需更新导入。

我看到有两种可能的解决方案(不喜欢其中任何一种):

  1. 添加一个gulp任务,该任务将监视组件库,并在每个更改副本上将文件复制到/ project_root中的node_modules
  2. 某种simlink?这样我们就可以将/ project_root / node_modules指向/ project_root / component_library / src?
  3. 我担心第一个解决方案可能不适用于应用程序中的IDE自动完成(第一个gulp需要进行编译/复制,然后IDE需要从node_modules中获取更改 - 这看起来像是可以的真的很慢) 第二个解决方案感觉很糟糕 - 每个从repo中检出代码的人都需要重复。

    这里最好的解决方案是什么?

1 个答案:

答案 0 :(得分:0)

  

更重要的是,我们希望能够将库代码移动到单独的项目而无需更新导入。

将您的component_library 一起发送,并将其添加为node_module依赖项。然后当有人拉你的代码时,他们可以添加一个git remote到node_modules/component_library代码,并且无缝地处理这两个项目。

这是我对ntypescript采取的方法。