EmberJS - 管理依赖关系( Managing Dependencies)
Ember使用NPM和Bower来管理在针对NPM的package.json和针对Bower的bower.json中定义的依赖关系。 例如,您可能需要在开发Ember应用程序时为Ember安装的样式表安装SASS。 要实现此目的,请使用Ember Addons共享可重用库。 如果要安装任何CSS框架或JavaScript datepicker依赖项,请使用Bower包管理器。
Addons
Ember CLI可用于使用以下命令安装Ember插件 -
ember install ember-cli-sass
ember install command将所有依赖项保存到相应的配置文件中。
Bower
它是Web的包管理器,用于管理HTML,CSS,JavaScript或图像文件的组件。 它基本上维护和监视所有包并检查新的更新。 它使用配置文件bower.json来跟踪放置在Ember CLI项目根目录的应用程序。
您可以使用以下命令安装项目依赖项 -
bower install <dependencies> --save
Assets
您可以将第三方JavaScript放在项目的vendor/文件夹中,这些JavaScript不是Addon或Bower软件包,而是将自己的资产(如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'
]
}
});
环境特定资产
通过将对象定义为第一个参数(即环境名称)并且对象的值应该用作该环境中的资产,可以在不同的环境中使用不同的资产。 在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文件夹中的图标,则会将其复制到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的字体文件。