Hubnav 项目教程
1. 项目的目录结构及介绍
Hubnav 是一个用于 GitHub 导航的 Chrome 扩展,其目录结构如下:
hubnav/
├── .eslintrc.js
├── .gitignore
├── .rspec
├── .travis.yml
├── CHANGELOG.md
├── LICENSE.txt
├── README.md
├── logo.pxm
├── package-lock.json
├── package.json
├── promo-assets/
│ └── ...
├── screenshot-options-007.png
├── screenshot-popup-007.png
└── ...
目录结构介绍
.eslintrc.js
: ESLint 配置文件,用于代码风格检查。.gitignore
: Git 忽略文件配置。.rspec
: RSpec 配置文件。.travis.yml
: Travis CI 配置文件。CHANGELOG.md
: 项目更新日志。LICENSE.txt
: 项目许可证。README.md
: 项目说明文档。logo.pxm
: 项目图标。package-lock.json
: npm 锁定文件,确保依赖版本一致。package.json
: npm 项目配置文件。promo-assets/
: 推广资源文件夹。screenshot-options-007.png
: 选项截图。screenshot-popup-007.png
: 弹出窗口截图。
2. 项目的启动文件介绍
Hubnav 项目的启动文件主要是 package.json
中的 main
字段指定的文件。通常,Chrome 扩展的入口文件是 manifest.json
,但在这个项目中,manifest.json
文件并没有直接列出。
package.json
文件
{
"name": "hubnav",
"version": "0.1.0",
"description": "A Chrome extension for navigating github.com via keyboard shortcuts",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "cheshire137",
"license": "MIT",
"dependencies": {
"bulma": "^0.7.1"
}
}
启动文件介绍
main
字段指定的index.js
文件是项目的入口文件。scripts
字段定义了项目的脚本命令,如测试命令。dependencies
字段列出了项目依赖的包,如bulma
。
3. 项目的配置文件介绍
Hubnav 项目的配置文件主要包括 manifest.json
和 package.json
。
manifest.json
文件
{
"manifest_version": 2,
"name": "Hubnav",
"version": "0.1.0",
"description": "A Chrome extension for navigating github.com via keyboard shortcuts",
"permissions": [
"activeTab"
],
"background": {
"scripts": ["background.js"],
"persistent": false
},
"browser_action": {
"default_popup": "popup.html",
"default_icon": {
"16": "images/icon-16.png",
"48": "images/icon-48.png",
"128": "images/icon-128.png"
}
},
"icons": {
"16": "images/icon-16.png",
"48": "images/icon-48.png",
"128": "images/icon-128.png"
},
"commands": {
"_execute_browser_action": {
"suggested_key": {
"default": "Ctrl+Shift+F",
"mac": "MacCtrl+Shift+F"
},
"description": "Opens popup.html"
}
}
}
配置文件介绍
manifest_version
: 指定清单文件的版本,通常为 2。name
: 扩展的名称。version
: 扩展的版本号。description
: 扩展的