npm init -y
git init
npm install typescript
add tsconfig.json
{
"compilerOptions": {
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"target": "ES2015",
"module": "ESNext",
"moduleResolution": "node"
}
}
npm install eslint prettier husky lint-staged @typescript-eslint/eslint-plugin @typescript-eslint/parser-D
add scripts in package.json
{
"scripts": {
"prepare": "husky install",
"lint-staged": "lint-staged"
},
"lint-staged": {
"src/**/*.{js,ts}": [
"eslint --fix",
"prettier --write"
]
},
}
then husky install
npm run prepare
add husky pre-commit shell.
next,eslint config:
//.eslintrc.js
module.exports = {
env: {
browser: true,
es2021: true,
node: true,
},
extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended'],
overrides: [],
parser: '@typescript-eslint/parser',
parserOptions: {
ecmaVersion: 'latest',
sourceType: 'module',
},
plugins: ['@typescript-eslint'],
rules: {
'@typescript-eslint/no-var-requires': 'off',
},
}
// .prettierrc
{
"printWidth": 100,
"tabWidth": 2,
"semi": false,
"singleQuote": true
}
npm install @rollup/plugin-typescript rollup -D
add rollup.config.js
const typescript = require('@rollup/plugin-typescript')
module.exports = {
input: 'src/index.ts',
output: {
file: 'lib/index.js',
format: 'cjs',
banner: '#!/usr/bin/env node',
},
plugins: [typescript()],
}
npm install jest @babel/preset-env @babel/preset-typescript -D
add .babelrc
{
"presets": [
[
"@babel/preset-env",
{
"targets": {
"node": "current"
}
}
],
"@babel/preset-typescript"
]
}
at last, start coding.
- 因为使用typescript,chalk需要用4.x版本
read file
do read <source>
read and clip content to clipboard
do rc <source>
clip current path to clipboard
do clip-path