部分目錄文件解讀:
.circleci文件夾(config.yml文件)// Circleci的配置文件
Circleci是一個持續集成/部署的服務,可以綁定Github,只有代碼有變更,就會自動抓取,並根據你的配置,提供運行環境,執行測試、構建和部署。
.vscode/settings.json
是vscode編輯器的自定義配置文件
"typescript.tsdk": "node_modules/typescript/lib", // 是為了避免tsc編譯時產生的問題與vs cdoe提示問題不一致的現象
lerna.json // 是lerna的配置文件
lerna是js項目包管理工具,有兩種工作模式:Independent mode 及Fixed/Locked mode。前者會配合git,只發布有改動的包,后者是全量發布。
{
"npmClient": "yarn", // 指定用yarn來執行所有命令,默認是npm
"useWorkspaces": true,
"version": "3.0.0-alpha.1" //當前代碼倉庫的版本
}
jest.config.js // 測試框架jest配置文件
rollup.config.js // rollup打包工具的配置文件
rollup適用於類庫的打包,利用其tree-shaking特性,其性能優於webpack。具體對比可參見:
https://juejin.im/post/5d3e62f6f265da1b5e733ca5
疑問一: 既然rollup只支持ES模塊打包,為何vue-next源碼里依然可以require/exports CommonJS的語法?
CommonJs是Node.js的規范,Node.js無法直接兼容ES6,所以現階段require/exports仍然是必要且必須的。