EmberJS - 依赖管理



Ember 使用 NPM 和 Bower 来管理依赖项,这些依赖项在 `package.json` (用于 NPM) 和 `bower.json` (用于 Bower) 中定义。例如,您可能需要安装 SASS 用于样式表,而这在开发 Ember 应用程序时 Ember 并没有安装。要实现此目的,请使用 `Ember Addons` 来共享可重用的库。如果要安装任何 CSS 框架或 JavaScript 日期选择器依赖项,请使用 Bower 包管理器。

Addons

可以使用 `Ember CLI` 通过以下命令安装 Ember Addons:

ember install ember-cli-sass

`ember install` 命令会将所有依赖项保存到相应的配置文件中。

Bower

这是一个用于 Web 的包管理器,它管理 HTML、CSS、JavaScript 或图像文件的组件。它基本上维护和监控所有包并检查新的更新。它使用配置文件 `bower.json` 来跟踪放置在 Ember CLI 项目根目录中的应用程序。

可以使用以下命令安装项目依赖项:

bower install <dependencies> --save

资源

您可以将项目中作为 Addon 或 Bower 包不可用的第三方 JavaScript 放置在项目的 `vendor/` 文件夹中,并将自己的资源(例如 robots.txt、favicon 等)放置在项目的 `public/` 文件夹中。在开发 Ember 应用程序时 Ember 并未安装的依赖项,应使用清单文件 `ember-cli-build.js` 包含。

AMD JavaScript 模块

您可以将资源路径作为第一个参数,将模块和导出的列表作为第二个参数。您可以将这些资源包含在 `ember-cli-build.js` 清单文件中,如下所示:

app.import('bower_components/ic-ajax/dist/named-amd/main.js', {
   exports: {
      'ic-ajax': [
         'default',
         'defineFixture',
         'lookupFixture',
         'raw',
         'request'
      ]
   }
});

特定环境的资源

可以通过将对象作为第一个参数定义(它是环境名称),并将对象的 value 作为该环境中的资源来使用不同的资源。在 `ember-cli-build.js` 清单文件中,您可以将其包含为:

app.import ({
   development: 'bower_components/ember/ember.js',
   production:  'bower_components/ember/ember.prod.js'
});

其他资源

将所有资源放置在 `public/` 文件夹后,它们将被复制到 `dist/` 目录中。例如,如果您复制放置在 `public/images/favicon.ico` 文件夹中的 favicon,它将被复制到 `dist/images/favicon.ico` 目录中。第三方资源可以手动添加到 `vendor/` 文件夹中,或者通过 `import()` 选项使用 Bower 包管理器添加。未使用 `import()` 选项添加的资源将不会出现在最终构建中。

例如,考虑以下代码行,它将资源导入 `dist/` 文件夹。

app.import('bower_components/font-awesome/fonts/fontawesome-webfont.ttf');

上面的代码行在 `dist/font-awesome/fonts/fontawesomewebfont.ttf` 中创建一个字体文件。您也可以将上面的文件放在不同的路径中,如下所示:

app.import('bower_components/font-awesome/fonts/fontawesome-webfont.ttf', {
   destDir: 'assets'
});

它会将字体文件复制到 `dist/assets/fontawesome-webfont.ttf`。

广告