프로그래밍언어/Javascript
package.lock.js로부터 package.js 만들기
codinglog
2024. 7. 15. 15:29
샘플 코드를 받았는데 package.js는 없고 package.lock.js 파일만 있으면 npm install 이 안된다.
package.lock.js에는 package.js가 가지고 있는 정보를 일정부분 보함하고 있으니 코드로 복원하자.
const fs = require('fs');
const lockFile = 'package-lock.json';
const packageFile = 'package.json';
fs.readFile(lockFile, (err, data) => {
if (err) throw err;
const lockJson = JSON.parse(data);
const packageJson = {
name: lockJson.name || 'example-project',
version: lockJson.version || '1.0.0',
description: '',
main: 'index.js',
scripts: {
test: 'echo "Error: no test specified" && exit 1'
},
author: '',
license: 'ISC',
dependencies: {},
devDependencies: {}
};
for (const [key, value] of Object.entries(lockJson.dependencies)) {
if (value.dev) {
packageJson.devDependencies[key] = value.version;
} else {
packageJson.dependencies[key] = value.version;
}
}
fs.writeFile(packageFile, JSON.stringify(packageJson, null, 2), (err) => {
if (err) throw err;
console.log('package.json has been created');
});
});
반응형