RSS Feed Emitter 项目教程
1. 项目的目录结构及介绍
rss-feed-emitter/
├── bin/
│ └── rss-feed-emitter
├── docs/
│ ├── examples/
│ └── README.md
├── lib/
│ ├── feeder.js
│ ├── parser.js
│ └── utils.js
├── test/
│ ├── feeder.spec.js
│ ├── parser.spec.js
│ └── utils.spec.js
├── .gitignore
├── .npmignore
├── .travis.yml
├── LICENSE
├── package.json
└── README.md
- bin/: 包含可执行文件。
- docs/: 包含项目文档,如示例和README文件。
- lib/: 包含项目的主要代码文件,如feeder、parser和utils。
- test/: 包含项目的测试文件。
- .gitignore: 指定Git版本控制系统忽略的文件和目录。
- .npmignore: 指定npm发布时忽略的文件和目录。
- .travis.yml: Travis CI配置文件。
- LICENSE: 项目许可证。
- package.json: 项目的npm配置文件,包含依赖、脚本等信息。
- README.md: 项目的主要说明文档。
2. 项目的启动文件介绍
项目的启动文件位于bin/
目录下,文件名为rss-feed-emitter
。这个文件是一个可执行脚本,用于启动RSS Feed Emitter服务。
#!/usr/bin/env node
const RssFeedEmitter = require('../lib/feeder');
const feeder = new RssFeedEmitter();
// 添加RSS源
feeder.add({
url: 'http://www.nintendolife.com/feeds/news',
refresh: 2000
});
// 监听新条目
feeder.on('new-item', function(item) {
console.log(item);
});
3. 项目的配置文件介绍
项目的配置文件主要是package.json
,它包含了项目的元数据和依赖信息。
{
"name": "rss-feed-emitter",
"version": "3.1.0",
"description": "Super RSS News Feed aggregator written in Node.js and ES6",
"main": "lib/feeder.js",
"bin": {
"rss-feed-emitter": "bin/rss-feed-emitter"
},
"scripts": {
"test": "mocha --recursive",
"coverage": "nyc npm test",
"lint": "eslint lib test bin",
"prepublishOnly": "npm run lint && npm test"
},
"repository": {
"type": "git",
"url": "git+https://github.com/filipedeschamps/rss-feed-emitter.git"
},
"keywords": [
"rss",
"feed",
"aggregator",
"emitter",
"news"
],
"author": "Filipe Deschamps",
"license": "MIT",
"bugs": {
"url": "https://github.com/filipedeschamps/rss-feed-emitter/issues"
},
"homepage": "https://github.com/filipedeschamps/rss-feed-emitter#readme",
"dependencies": {
"axios": "^0.21.1",
"feedparser": "^2.2.10",
"lodash": "^4.17.21",
"moment": "^2.29.1",
"xml2js": "^0.4.23"
},
"devDependencies": {
"chai": "^4.3.4",
"eslint": "^7.25.0",
"mocha": "^8.3.2",
"nyc": "^15.1.0",
"sinon": "^10.0.0"
}
}
- name: 项目名称。
- version: 项目版本。
- description: 项目描述。
- main: 项目的主入口文件。
- bin: 可执行文件的映射。
- scripts: 包含各种npm脚本,如测试、代码覆盖率、代码检查等。
- repository: 项目的仓库地址。
- keywords: 项目的关键词。
- author: 项目作者。
- license: 项目许可证。
- bugs: 项目问题跟踪地址。
- homepage: 项目主页。
- dependencies: 项目运行时的依赖。
- devDependencies: 项目开发时的依赖。