0%

node-module-boilerplate

愚蠢的人让神经网络像机器的硬盘一样记忆信息, 聪明的人让机器模仿学习像人类一样深邃的思考.

参考

资源

node-module-boilerplate

使用 npm 初始化项目

1
2
cd x:/git.workspace/node-module-boilerplate
npm init --scope=floatsyi

使用 rollup 构建工具, 构建现代化 node package

  1. 使用 npm 添加开发时依赖: rollup

    1
    npm i rollup -D
  2. 创建基本的目录结构

    1
    mkdir -p src/index.js __test__/ build coverage rollup.config.js
  3. 添加以下内容到 rollup.config.js
    参考: 前端构建工具

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    import babel from 'rollup-plugin-babel'
    import { terser } from 'rollup-plugin-terser'
    import commonjs from 'rollup-plugin-commonjs'
    import resolve from 'rollup-plugin-node-resolve'
    import filesize from 'rollup-plugin-filesize'

    export default {
    input: 'src/index.js',
    output: [
    {
    file: 'build/index.cjs.js',
    format: 'cjs'
    },
    {
    file: 'build/index.esm.js',
    format: 'es'
    }
    ],
    external: ['core-js'],
    plugins: [
    resolve(),
    babel(),
    commonjs(),
    terser({
    output: {
    // 保留版权注释
    comments (node, comment) {
    const text = comment.value
    const type = comment.type
    if (type === 'comment2' /* multiline comment */) {
    return /preserve|license|cc_on/i.test(text)
    }
    }
    }
    }),
    filesize()
    ]
    }
  4. 添加以下 npm script
    package.json:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    {
    "main": "build/index.cjs.js",
    "module": "build/index.esm.js",
    "files": [
    "build"
    ],
    "script": {
    "build": "rollup --config"
    }
    }

使用 jest 测试框架测试代码

参考: JavaScript Testing Framework: jest

使用 eslinteslint-config-standard

参考: 代码规范与项目结构

  1. 使用 npm 添加开发时依赖性: eslinteslint-config-standard

    1
    2
    npm i -D eslint
    npm install --save-dev eslint-config-standard eslint-plugin-standard eslint-plugin-promise eslint-plugin-import eslint-plugin-node
  2. 新建 .eslintrc.eslintignore 文件

    1
    touch .eslintrc .eslintignore

    .eslintrc:

    1
    2
    3
    {
    "extends": "standard"
    }

    .eslintignore:

    1
    build/**
  3. 添加以下 npm script
    package.json:

    1
    2
    3
    4
    5
    6
    {
    "script": {
    "lint": "eslint .",
    "lint:fix": "eslint --fix ."
    }
    }

使用 lint-staged , husky 以及 [commitlint][] 规范 git staged files 和 git commit message

  1. 使用 npm 添加开发时依赖: lint-staged \ husky \ commitlint

    1
    2
    3
    npm i -D husky lint-staged
    npm install --save-dev @commitlint/config-angular @commitlint/cli
    npm install --save-dev @commitlint/prompt @commitlint/prompt-cli
  2. 添加以下内容到 package.json
    package.json

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    {
    "scripts": {
    "commit": "commit"
    },
    "lint-staged": {
    "*.js": [
    "eslint --fix",
    "git add"
    ]
    }
    "husky": {
    "hooks": {
    "pre-commit": "lint-staged",
    "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
    }
    }
    }
  3. 添加以下内容到 commitlint.config.js
    commitlint.config.js:

    1
    module.exports = { extends: ['@commitlint/config-angular'] }

使用 [semantic-release][] 语义化版本号

  1. 使用 npm 将 semantic-release-cli 安装至全局

    1
    npm install -g semantic-release-cli
  2. 执行 semantic-release-cli setup

    1
    semantic-release-cli setup

    semantic-release-cli setup

[codecov][]

  1. 使用 npm 添加开发时依赖: codecov

    1
    npm install codecov --save-dev
  2. 添加以下 npm script
    package.json:

    1
    2
    3
    4
    5
    {
    "script": {
    "codecov": "codecov"
    }
    }

新建一个 github 仓库, 对代码进行版本管理

  1. 登录 github 并新建一个名为 node-module-boilerplate 的仓库

  2. 使用 git 命令行工具将本地工作目录链接到 github 服务器的仓库

    1
    2
    3
    4
    5
    6
    git init
    git add .
    git commit -m "first commit"
    git remote add origin git@github.com:FloatingShuYin/node-module-boilerplate.git
    git pull --set-upstream origin master
    git push
  3. 使用编辑器打开工作目录并重装 husky

    1
    2
    3
    4
    code .
    npm uninstall husky
    npm install -D husky
    npm audit fix