项目初始化
- 初始化 package.json
npm init
字段说明{ "name": "sun-arms", "version": "1.0.0", "description": "lint & tools", // main 字段的值是入口文件,即使不包括在 files 字段里,也会被打包。 "main": "index.js", // files 字段值的类型是字符串数组,数组里面的字符串填写需要发布到 NPM 的文件名。当然也可以在根目录下创建 .npmignore 文件,把不需要上传到 NPM 的文件名填进去。不过有些文件或者目录比如, README.md 或者 LICENSE.md 是默认就会被打包。也有默认不会被打包的目录或者文件,比如, node_modules 或者 .git。 "files": [ "dist", ... ], "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "repository": { "type": "git", "url": "git+https://github.com/zhangyingxuan/sun-arms.git" }, "author": "zhangyingxuan", "license": "ISC", "bugs": { "url": "https://github.com/zhangyingxuan/sun-arms/issues" }, "homepage": "https://github.com/zhangyingxuan/sun-arms#readme", "publishConfig": { "access": "public", "registry": "https://registry.npmjs.org/" }, // browser 当需要打包多个版本时,设置 browser 字段,可以根据浏览器的不同环境变量,使用不同的版本 // unpkg 提供一个给 UNPKG, 用于支持 CDN 服务,有点类似 browser // module 若项目中有封装模块,可以设置 module, 也就是设置一个模块的入口, 该字段目前比较前卫 // typings/types TypeScript 解析文件的入口, 该文件会被发布到 NPM, 并且可以被下载,为用户提供更加好的 IDE 支持。 // bin 若项目中包含一些可执行文件,可以把文件名在 bin 字段下, 当只有一个 Node.js 文件入口时, 可以是 string 值,当有多个的时候,可以用键值对的形式写。不过要执行这些文件,需要在文件头部加上 #!/usr/bin/env node // man 若需要提供命令行输出文档,可以用 man 字段指明,当只有一个文件时, 可以是一个字符串值, 当有多个文件时, 可以是一个字符串数组。 // peerDependencies NPM v3开始,peerDependencies 字段需要自己配置,用于指定一个兼容项目的依赖,该字段的值是一个对象,对象的 key 是兼容包的名称,对象的值是该包的指定版本。 // optionalDependencies 字段用于设置一些项目中的可选包,这些包不一定要下载,但是却很有用,设置在该字段下后,对应的包只会在需要的时候被下载,比如 fsevents 模块,尽在 mac 下有效。 // bundledDependencies 字段是一个字符串数组,数组元素是需要跟最终包一起打包出去的依赖名称。 }
添加 .gitignore
.DS_Store
node_modules
**/*/dist
**/*/es
**/*/lib
!**/sites/**/site/lib
# local env files
.env.local
.env.*.local
.idea
temp
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
# Editor directories and files
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
# release packages
*.zip
*.gz
*.tar
初始化 lint
参考 2022-04-17-【工程化】vue3-vite4-ts配置eslint、stylelint、prettier
初始化 husky、commitlint
参考 2022-04-17-【工程化】vue3-vite4-ts配置husky、pre-commit
rollup 模块打包
- 安装依赖
pnpm install rollup --save-dev pnpm install @rollup/plugin-commonjs --save-dev pnpm install rollup --save-dev
-
说明:@rollup/plugin-commonjs 支持依赖包转换为es模块化标准。 convert node_modules library to an ES module
- 配置打包指令
"dev": "rollup -i src/main.js -o dist/bundle.js -f es"
-i指定要打包的文件,-i是–input的缩写。 src/index.js是-i的参数,即打包入口文件。 -o指定输出的文件,是–output.file或–file的缩写。(如果没有这个参数,则直接输出到控制台) dist/bundle.js是-o的参数,即输出文件。 -f指定打包文件的格式,-f是–format的缩写。 es是-f的参数,表示打包文件使用ES6模块规范。 rollup支持的打包文件的格式有amd, cjs, es\esm, iife, umd。其中,amd为AMD标准,cjs为CommonJS标准,esm\es为ES模块标准,iife 为立即调用函数, umd同时支持amd、cjs和iife。
多指令执行
pnpm install npm-run-all -D