這個文件能夠容許咱們在自動npm install的時候對當前npm環境設置參數
例如 registry = https://registry.npm.taobao.org 定義當前項目鏡像源地址
還有等等的能夠參考 npm參數設置
https://docs.npmjs.com/cli/co...css
顧名思義是在裏面定義git 忽略的東西
它是符合globs模式的
寫起來與常見的匹配文件文件夾模式相似。
/xxxxxm ,!/dsdasd
過!前端
因爲項目是react的,因此選擇react-styleguidist
因爲沒有中文文檔,因此只能瞭解英文文檔了
主要也是配一個config文件node
至於配置方法,就是通常的webpack配置手段了。react
在組件文件夾中,而後分發到指定的example.mdwebpack
jest是react如今最經常使用的測試庫之一。
通常常見有兩個地方進行config 設置。git
package.json文件
jest.config.js文件web
主要是看我的喜愛。
下面簡單介紹一下jest配置shell
module.exports = { setupFiles: ['./jest.setup.js'], rootDir: '', testMatch: ['<rootDir>/__test__/*.test.js','<rootDir>/__test__/**/*.test.js'], coverageDirectory: '<rootDir>/.coverage/', collectCoverageFrom: [ '**/*.{js,jsx}', '!**/*.{config,setup}.js', '!**/node_modules/**', '!**/*.test.js', '!dist/*', ], collectCoverage: true, coverageReporters: ['lcov', 'text', 'text-summary'], moduleDirectories: [ 'node_modules', '<rootDir>', ], coverageThreshold: { global: { branches: 50, functions: 50, lines: 50, statements: 50, }, }, verbose: true, transform: { '^.+\\.js$': 'babel-jest' }, moduleNameMapper: { "^.+\\.scss$": "<rootDir>/__test__/__mocks__/css-transform.js", "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$": "<rootDir>/__test__/__mocks__/fileMock.js", "^@app(.*)$": "<rootDir>/src/components$1", }, testURL: "http://localhost/", };
// jest.setup.js const enzyme = require('enzyme'); const Adapter = require('enzyme-adapter-react-16'); enzyme.configure({ adapter: new Adapter() }); global.shallow = enzyme.shallow; global.mount = enzyme.mount; global.render = enzyme.render;
主要是連接travis ci服務
build的主要生命週期
選擇可用的apt插件
可選安裝緩存組件npm
sudo: false language: node_js node_js: - 6 install: - npm install -g codecov - npm install script: - npm run test && codecov cache: directories: - node_modules before_install: - echo registry = https://registry.npmjs.org/ > .npmrc
附上自用的設置。json
之因此 覆寫.npmrc文件 ,是travis ci服務機子應該在國外,使用npm的源應該會快一些,而咱們本地使用應該使用公司源或者taobao源
首先須要在coverage得到一個項目的token值。
而後將token值定義在travis ci的環境變量中。
而後codecov 默認的是.coverage文件夾上傳~~。
咱們的開源協議啦~~
在咱們有了文檔,這裏能夠定義幾個簡單的shell腳本
例如自動將文檔push上gh-pages分支上
無非就是npx styleguidist build
拿出來的文件push 上分支就能夠啦~~
當咱們有了ci coverage等等的時候
咱們能夠給項目增長小徽章~~~!!!
相信你們都很熟悉。
對類庫模塊的版本控制,由於babel,webpack都更新了一個大版本。
若是盲目的npm install -S webpack babel的話。
容易形成配置不可用等問題。要注意版本
另外也要區別devDependencies 與dependencies等等的差異
script腳本
"test": "jest --env=jsdom --config ./jest.config.js", "test:watch": "jest --env=jsdom --config ./jest.config.js --watch", "start": "npm run dev", "dev": "npx styleguidist server", "lint": "eslint --ignore-path .gitignore ./src", "build": "webpack", "build:doc": "npx styleguidist build", "deploy:doc": "./publish-doc.sh"