Aurelia外部资源

时间:2017-01-31 15:51:46

标签: npm resources structure aurelia aurelia-framework

我正在寻找使用不同项目之间共享的公共资源来安排我的代码库的最佳方法。我有三个aurelia应用程序。在每一个中,我在其资源文件夹中添加了一些资源(自定义元素,属性等)。当我需要一个已经在另一个项目中写过的时候,我就粘贴了它。现在我有时间重构,我想将所有这些资源移到专用的存储库中。然后我希望能够只选择每个项目中需要的资源。

我尝试将所有资源都放在一个repo中,其中包含aurelia骨架的gulp构建任务,这允许我构建所有模块的AMD模块。然后,我已经能够通过在aurelia.json中添加它们来单独加载一些模块。例如:

{
  "name": "aurelia-resources-progress-button",
  "path": "../node_modules/SHG-aurelia-resources/dist/amd/resources/attributes",
  "main": "progress-button"
}

或自定义元素:

{
  "name": "aurelia-resources-avatar-upload",
  "path": "../node_modules/SHG-aurelia-resources/dist/amd/resources/elements/avatar-upload",
  "main": "avatar-upload",
  "resources": [
    "avatar-upload.html",
    "avatar-upload.css"
  ]
}

它就像一个魅力,但它失败了一个从相对路径导入模块的值转换器。 该文件位于:

  

“projectRoot / node_modules / SHG-奥里利亚资源/ DIST / AMD /资源/值转换器/持续时间-format.js”,   它从'../ utils./strings'

导入

我运行时遇到以下错误:

  

“错误:ENOENT:没有这样的文件或目录,打开   '/Users/hadrien/Documents/dev/SportHeroes/united-heroes/src/resources/utils/strings.js'”。

奇怪的是,当我需要模板中的相对模块时(比如我的进度按钮自定义属性),没有问题。

我不想制作插件,因为我不想加载我的repo的每个模块。如果可能的话,我想要的是能够设置.feature ('../node_modules/path/resources')并加载它们,就像我加载本地资源一样。

我该怎么办?

1 个答案:

答案 0 :(得分:2)

我在上述评论中回答了问题。

如果你有一个npm包,你可以使用USE [DB] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER TRIGGER [dbo].[trigger_name] ON [dbo].[table_name] AFTER INSERT AS BEGIN SET NOCOUNT ON EXEC procedure_name_exec param1, param2, param3 END 元素从中获取资源。这个npm包可以将自己打包为插件,你只需选择不加载它,因为你只想要它提供的东西的子集。

我已经创建了一组展示此内容的示例项目:https://github.com/AshleyGrant/sample-app-so41961759

此应用程序依赖于https://github.com/AshleyGrant/sample-resources-so41961759/

这个依赖项将自己打包为一个插件,但它也可以像我在应用程序中那样只使用插件所拥有的两个资源中的一个来零碎地使用。请注意,其他资源未加载,因为我没有使用它。

当我从依赖项中提取资源时,这就是应用程序中的样子:

require