tested on Ubuntunode
# goto the nvm office website and find the latest version, e.g. 0.34.0 # install nvm curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash # list remote versions nvm ls-remote # install the latest on nvm install v11.8.0 # use the version nvm use v11.8.0 # always default to the latest available node version on a shell nvm alias default node
# configure repository curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list # install yarn sudo apt-get update && sudo apt-get install yarn
# add a package global yarn global add create-react-app # add a package local and save to dependencies yarn add prismjs # add a package local and save to devDependencies yarn add gulp --dev # add a package local and save to peerDependencies yarn add prismjs --peer # add a package local and save to optionalDependencies yarn add prismjs --optional
# install create-react-app yard global add create-react-app # create a react application npx create-react-app my-app
npm install
will get:
npm install --production
will get:
npm pack
will pack bundelDependenciesreact
when to use devDependenciesgit
when to use bundelDependenciesgithub
when to use peerDependenciesweb
npx: node package runnershell
babel: a JavaScript compiler.
put in next-gen JavaScript -> Get browser-compatible JavaScript outnpm
## Install the gulp command line utility npm install gulp-cli -g ## Install the gulp package in your devDependencies ## cd <project folder> npm install gulp --save-dev ## Verify your gulp versions gulp --help ## new a gulp task file touch gulpfile.js
The pluggable linting utility for JavaScript and JSXjson
# install the eslint package in your devDependencies yarn add eslint --dev yarn add eslint-config-react-app --dev yarn add eslint-plugin-import --dev yarn add eslint-plugin-flowtype --dev yarn add eslint-plugin-jsx-a11y --dev yarn add eslint-plugin-react --dev yarn add flow-bin --dev ## check version npm run lint -v ## or ./node_modules/eslint/bin/eslint.js -v yarn flaw version
{ "extends": [ "react-app", "eslint:recommended", "plugin:react/recommended" ], "plugins": [ "react" ], "settings": { "react": { "createClass": "createReactClass", "pragma": "React", "version": "detect", "flowVersion": "0.53" }, "propWrapperFunctions": [ "forbidExtraProps", { "property": "freeze", "object": "Object" }, { "property": "myFavoriteWrapper" } ], "linkComponents": [ "Hyperlink", { "name": "Link", "linkAttribute": "to" } ] }, "parserOptions": { "ecmaFeatures": { "jsx": true } }, "rules": { "no-console": "off" } }
// eslint-disable-next-line no-console
/* eslint-disable no-console */
"rules": { "no-console": "off" }
# crete .flowconfig yarn flaw init
edit .flowconfiggulp
[ignore] .*/node_modules/config-chain/.* [include] [libs] [lints] all=warn [options] [strict] nonstrict-import unclear-type untyped-import untyped-type-import unsafe-getters-setters sketchy-null
yarn lint yarn flaw
yarn lint -- --fix
Git hooks made easy - Husky can prevent bad git commit
, git push
and more 🐶 woof!bash
npm install husky --save-dev
// package.json { "husky": { "hooks": { "pre-commit": "npm test", "pre-push": "npm test", "...": "..." } } }