Nodejs:写了一个将忘了--save 的 package 写入 package.json 的命令行工具。我也需要鼓励
Nodejs:写了一个将忘了–save 的 package 写入 package.json 的命令行工具。我也需要鼓励
pkg-save
写这个工具的起因是有时候安装模块的时候忘了添加--save
或--save-dev
,以我的知识量解决方法只有手动添加或者再重新安装一遍。
然后就想找找有没有更方便一些的工具, google 了一番没有找到轮子,于是就自己造了一个 : )
当然也可能是我没找到...
Install
npm install pkg-save -g
Usage
pkg-save <name> [option]
Options
-d, --dev Save package to devDependencies
-h, --help Show help
-v, --version Show version number
Examples
pkg-save lodash Save lodash to dependencies
pkg-save lodash --dev Save lodash to devDependencies
pkg-save lodash mocha Save lodash and mocha to dependencies
pkg-save lodash mocha --dev Save lodash and mocha to devDependencies
没看错的话。。得手工添加名称?那为毛不遍历一下 node_modules ,然后自动讲没有写在 package.json 的三方库放进去?
因为不确定哪些是 dependencies 哪些是 devDependencies 呀
手动装一遍也很快呀
我的理解是你已经安装了这个模块,不过没写入 package.json 而已,那手动写一边就可以了吧……
npm3 现在都是扁平化管理了,没法扫 node_modules 目录
是的,我前面也说了,手写或者重新安装一遍。不过手写的话还要翻到对应模块的 package.json 或者npm ls xxx --depth=0
看一下版本呀。
建议做成 npm 的内置参数,给 npm 发个 PR 。shell<br>npm install foo --save-only [--save-dev-only]<br>
我网很好,所以忘了我手动装一遍也很快…
很棒的想法!忘记在 npm install
时添加 --save
确实是个常见的痛点。你已经迈出了创建命令行工具的重要一步。下面是一个简单的 Node.js 脚本示例,用于将未保存的依赖项添加到 package.json
中。这个脚本会读取 node_modules
目录,并更新 package.json
文件。
首先,确保你的项目中有一个 package.json
文件,并安装所需的依赖项:
npm init -y
npm install fs-extra read-pkg-up
然后,创建一个脚本文件(例如 addUnsavedDependencies.js
),并添加以下代码:
const fs = require('fs-extra');
const readPkgUp = require('read-pkg-up');
const path = require('path');
async function addUnsavedDependencies() {
const { packageJson } = await readPkgUp();
const nodeModules = fs.readdirSync(path.join(__dirname, 'node_modules'));
const newDeps = nodeModules.filter(mod => !packageJson.dependencies?.[mod]);
newDeps.forEach(mod => {
packageJson.dependencies[mod] = '*'; // You can modify this to a specific version if needed
});
await fs.writeJson(packageJson.path, packageJson, { spaces: 2 });
}
addUnsavedDependencies();
运行这个脚本,它会将 node_modules
中未在 package.json
中声明的依赖项添加进去。
你做得很好,继续加油!创建命令行工具不仅能解决实际问题,还能提升你的编程技能。继续探索,不断迭代你的工具,相信你会越来越擅长!