Ember Undo Stack 项目教程
1. 项目的目录结构及介绍
ember-undo-stack/
├── addon/
│ ├── components/
│ ├── helpers/
│ ├── services/
│ └── utils/
├── app/
│ ├── components/
│ ├── helpers/
│ ├── services/
│ └── utils/
├── config/
│ ├── environment.js
│ └── optional-features.json
├── ember-cli-build.js
├── package.json
├── README.md
├── testem.js
└── tests/
├── acceptance/
├── integration/
└── unit/
-
addon/: 包含项目的核心代码,通常是供其他项目使用的插件代码。
- components/: 存放自定义组件。
- helpers/: 存放自定义助手函数。
- services/: 存放自定义服务。
- utils/: 存放工具函数。
-
app/: 包含项目的应用代码,通常是项目的入口代码。
- components/: 存放应用级别的自定义组件。
- helpers/: 存放应用级别的自定义助手函数。
- services/: 存放应用级别的自定义服务。
- utils/: 存放应用级别的工具函数。
-
config/: 包含项目的配置文件。
- environment.js: 配置不同环境的设置,如开发、测试和生产环境。
- optional-features.json: 配置可选的 Ember 特性。
-
ember-cli-build.js: Ember CLI 构建配置文件。
-
package.json: 项目的依赖和脚本配置文件。
-
README.md: 项目的介绍和使用说明。
-
testem.js: 测试运行器的配置文件。
-
tests/: 包含项目的测试代码。
- acceptance/: 存放验收测试。
- integration/: 存放集成测试。
- unit/: 存放单元测试。
2. 项目的启动文件介绍
项目的启动文件主要是 config/environment.js
。这个文件负责配置不同环境的设置,如开发、测试和生产环境。以下是该文件的简要介绍:
module.exports = function(environment) {
let ENV = {
modulePrefix: 'ember-undo-stack',
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') {
// 生产环境配置
}
return ENV;
};
3. 项目的配置文件介绍
项目的配置文件主要集中在 config/
目录下,包括 environment.js
和 optional-features.json
。
environment.js
如上所述,environment.js
是项目的主要配置文件,负责配置不同环境的设置。它定义了项目的模块前缀、环境类型、根URL、位置类型等。此外,它还允许开发者根据不同的环境(如开发、测试和生产环境)设置不同的配置选项。
optional-features.json
optional-features.json
文件用于配置可选的 Ember 特性。以下是一个示例:
{
"application-template-wrapper": false,
"default-async-observers": true,
"jquery-integration": false
}
- application-template-wrapper: 是否启用应用模板包装器。
- default-async-observers: 是否默认启用异步观察者。
- jquery-integration: 是否集成 jQuery。
这些配置选项可以根据项目需求进行调整,以优化项目的性能和功能。