1 |
|
lerna源码学习
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
lerna用法
lerna安装及项目初始化
lerna是各大开源项目常用的npm项目包管理工具,非常值得研究和学习。
1 |
|
更多命令及详情中可以去readme文档中查看
用vscode进行nodejs代码调试
项目根路径的.vscode文件件内的
1 | { |
任务列表
1 | { |
常用操作
- step into 进入函数内部
- step out 退出函数
- step over 跳过函数
npm常用命令
使用 npm link 对本地仓库创建软链接
npm link xxxx
- 以上指令会在node安装路径下的bin目录,为xxxx项目中所有的bin指令创建软链接,链接指向lib/node_modules的xxxx的软链接,
- 然后在node安装路径下的lib/node_modules创建名称为xxxx的软链接,链接指向当前项目所在目录
简单来说就是把当前的项目软链到全局的node_modules
1 |
|
npm unlink 解除本地软链接
1 | # 如果 attr-cli-lib 正式上线之后,npm install 需要解除与本地的软链接 |