文章目录
lerna安装及项目初始化
lerna是各大开源项目常用的npm项目包管理工具,非常值得研究和学习。
cnpm i -g lerna
# 项目初始化,记得添加.gitignore
lerna init
# 创建package包
lerna create utils
# 为包添加依赖
lerna add lodash
# 为 package/core/ 添加 vue 依赖
lerna add vue package/core/
# 清空所有包的依赖
lerna clear
# 重新安装依赖
lerna bootstrap
# 在每个包的package.json中写好依赖关系及版本号,lerna link会为每个package创建彼此之间的依赖关系
lerna link
# lerna exec 为每个包执行命令
lerna exec -- rm -rf node_modules/
# 在指定的 @attack-i/core 包中执行命令
lerna exec --scope @attack-i/core -- rm -rf node_modules/
# lerna run 在每个包中执行npm scripts
lerna run test
# 在指定的 @attack-i/core 包中run script
lerna run --scope @attack-i/core test
lerna version
# 查看上本来依赖的所有变更
lerna changed 
# 查看diff
lerna diff 
# 发布
lerna publish
更多命令及详情中可以去readme文档中查看
node原生方法和属性
- fs.statSync / fs.lstatSync
 - fs.accessSync(path)
 - fs.realpathSync() // 根据相对路径,返回绝对路径(如果是软链接,会一直寻到最终路径)
 - fs.toRealPath() // 调用生成真实路径,判断是否存在
 - Module._nodeModulePaths(path) // 返回path各层级的node_modules路径数组
 - Module._resolveFilename(filename) // 返回文件的真实路径
 - NativeModule.canBeRequiredByUsers(request) // 是否是内置模块
 - Module._resolveLookupPaths(request, parent) // 返回一个数组,当前模块可能存在的所有路径,将当前模块文件路径各层级的node_modules目录数组和node环境变量中的node_modules数组合并,这是一个有顺序的数组,离path最近的一层目录为首位
 - process.cwd() // 当前进程运行目录
 
第三方
- import-local //查询是否是本地的包
 - pkg-dir // 查找当前文件或者目录层级最近的package.json
 - find-up
 - path-exists
 - locate-path
 - resolve-cwd