const fs = require('fs');
const yarnLock = fs.readFileSync('./yarn.lock', { encoding: 'utf-8' });
const package = fs.readFileSync('./package.json', { encoding: 'utf-8' });
let dependencies = '';
package.replace(/\"dependencies\"\: \{[\s\S]+?(.+?)[\s\S]+?\}/g, (a, b, c, d, e) => {
dependencies = a.replace(/\"dependencies\"\: \{/, '').replace(/\}/, '');
return a;
const keyObj = {};
dependencies.split(',').forEach((it, index) => {
const key = it.split(':')[0].replace(/"/g, '').trim();
const reg = `[^-a-zA-Z\/]${key}\\@[\\s\\S]+?:[\\s\\S]+?version (.+?)[\\s\\S]+?resolved`;
const regExp = new RegExp(reg, 'mi');
let version = '';
yarnLock.replace(regExp, (a) => {
a.trim().replace(/version[\s\S]+?"(.+?)"/, (v) => {
version = v.replace('version ', '');
return v;
return a;
keyObj[key] = version.replace(/"/g, '');
console.log(JSON.stringify(keyObj));
const fs = require('fs');const yarnLock = fs.readFileSync('./yarn.lock', { encoding: 'utf-8' });const package = fs.readFileSync('./package.json', { encoding: 'utf-8' });let dependencies = '';package.replace(/\"dependencies\"\: \{[\s\S]+?(.+?)[\s\S]+?.
synp将
yarn
.
lock
转换为package-
lock
.json,反之亦然。
install npm install -g synp命令行用法
yarn
.
lock
=> package-
lock
.json
yarn
#确保
node
_modules
文件
夹dir和synp将
yarn
.
lock
转换为package-
lock
.json,反之亦然。
install npm install -g synp命令行用法
yarn
.
lock
=> package-
lock
.json
yarn
#确保
node
_modules
文件
夹目录并已更新synp --source-file /path/to/
yarn
.
lock
#将创建/ path / to / package-
lock
.json package-
lock
.json =>
yarn
.
lock
npm install#确保
node
_modules目录存在并已更新synp --source-file /path/to/package-
lock
.json#将创建/ path /to/
yarn
.
lock
注意:如果只需要转换
命令行用法
yarn
.
lock
=> package-
lock
.json
yarn
# be sure the
node
_modules folder dir and is updated
synp --source-file /path/to/
yarn
.
lock
# will create /path/to/package-
lock
.json
package-
lock
.json =>
yarn
.
lock
npm install # be sure the
node
_modules dir exists and is updated
synp --source-file /path/to/package-
lock
.json
# will create /path/to/
yarn
.
lock
注意:如果您只需要在此方向上转换( package-
lock
.json =>
yarn
.
lock
),,
Yarn
可以从npm的package-
lock
.json本地导
这是如何运作的?
当前工作目录
中
有
yarn
.
lock
或package-
lock
.json时,它将跳过其他操作并
直接
解析
yarn
或npm
当找不到锁
文件
时,它会检查
yarn
命令是否存在。 如果是这样,它可以解决
yarn
否则解决npm
结果被缓存
yarn
add detect-package-manager
const detectPackageManager = require ( 'detect-package-manager' )
detectPackageManager ( )
. then ( pm => {
console . log (
Usage: sync
yarn
lock
[options]
Sync `
yarn
.
lock
` package versions, into
package.json
Options:
-V, --version output the version number
-d, --dir <path> directory path where the
yarn
.
lock
file is located (default to current direc
package.json
和package-
lock
.json的区别
https://blog.csdn.net/c2311156c/article/details/80320046
package.json
:主要用来定义项目
中
需要依赖的包
package-
lock
.json:在 `npm install`时候生成一份
文件
,用以记录当前状态下实际安装的各个npm package的具体来源和
版本
号...
我是一只小嘉图:
配置eslintrc遇到问题解决思路心得
风阿历克斯: