Ember Browserify 使用教程
1. 项目的目录结构及介绍
Ember Browserify 是一个用于在 Ember 应用中轻松加载 CommonJS 包的 ember-cli 插件。以下是其基本的目录结构:
ember-browserify/
├── app/
├── config/
├── lib/
├── node_modules/
├── public/
├── tests/
├── vendor/
├── .bowerrc
├── .editorconfig
├── .ember-cli
├── .gitignore
├── .jshintrc
├── .travis.yml
├── .appveyor.yml
├── Brocfile.js
├── LICENSE.md
├── README.md
├── package.json
└── testem.js
- app/: 包含 Ember 应用的源代码。
- config/: 包含应用的配置文件,如
environment.js
。 - lib/: 包含自定义库或插件代码。
- node_modules/: 包含通过 npm 安装的依赖包。
- public/: 包含静态资源文件。
- tests/: 包含测试文件。
- vendor/: 包含第三方库文件。
- .bowerrc: Bower 配置文件。
- .editorconfig: 编辑器配置文件。
- .ember-cli: Ember CLI 配置文件。
- .gitignore: Git 忽略文件配置。
- .jshintrc: JSHint 配置文件。
- .travis.yml: Travis CI 配置文件。
- .appveyor.yml: AppVeyor CI 配置文件。
- Brocfile.js: Broccoli 构建配置文件。
- LICENSE.md: 项目许可证。
- README.md: 项目说明文档。
- package.json: 项目依赖和脚本配置。
- testem.js: 测试运行器配置文件。
2. 项目的启动文件介绍
Ember Browserify 的启动文件主要是 app/app.js
,这是 Ember 应用的入口点。以下是其基本内容:
import Application from '@ember/application';
import Resolver from 'ember-resolver';
import loadInitializers from 'ember-load-initializers';
import config from './config/environment';
const App = Application.extend({
modulePrefix: config.modulePrefix,
podModulePrefix: config.podModulePrefix,
Resolver
});
loadInitializers(App, config.modulePrefix);
export default App;
- Application: 定义应用的主类。
- Resolver: 用于解析模块。
- loadInitializers: 加载初始化器。
- config: 从
config/environment.js
导入的配置。
3. 项目的配置文件介绍
Ember Browserify 的配置文件主要位于 config/
目录下,其中最重要的是 environment.js
。以下是其基本内容:
'use strict';
module.exports = function(environment) {
let ENV = {
modulePrefix: 'your-app-name',
environment: environment,
rootURL: '/',
locationType: 'auto',
EmberENV: {
FEATURES: {
// 在这里添加 Ember 特性
},
EXTEND_PROTOTYPES: {
// 禁用日期原型扩展
Date: false
}
},
APP: {
// 在这里添加应用配置
}
};
if (environment === 'development') {
// 开发环境配置
ENV.APP.LOG_RESOLVER = true;
ENV.APP.LOG_ACTIVE_GENERATION = true;
ENV.APP.LOG_TRANSITIONS = true;
ENV.APP.LOG_TRANSITIONS_INTERNAL = true;
ENV.APP.LOG_VIEW_LOOKUPS = true;
}
if (environment === 'test') {
// 测试环境配置
ENV.locationType = 'none';
ENV.APP.LOG_ACTIVE_GENERATION = false;
ENV.APP.LOG_VIEW_LOOKUPS = false;
ENV.APP.rootElement = '#ember-testing';
ENV.APP.autoboot = false;
}
if (environment === 'production') {
// 生产环境配置