Cha*_*les 144
您只需删除node_module目录即可
rm -rf node_modules/
Run Code Online (Sandbox Code Playgroud)
FDi*_*isk 68
这项工作实际上有特殊的命令
npm ci
Run Code Online (Sandbox Code Playgroud)
它将删除node_modules目录并根据您的package-lock.json文件安装软件包
更多信息:https : //docs.npmjs.com/cli/ci.html
Luc*_*cas 38
我把它添加到我的package.json:
"build": "npm build",
"clean": "rm -rf node_modules",
"reinstall": "npm run clean && npm install",
"rebuild": "npm run clean && npm install && npm run build",
Run Code Online (Sandbox Code Playgroud)
似乎运作良好.
jec*_*kep 16
试试 https://github.com/voidcosmos/npkill
npx npkill
Run Code Online (Sandbox Code Playgroud)
它将找到所有 node_modules 并让您删除它们。
小智 12
npm ci适用于这种情况,但仅当您的package.json和package-lock.json同步时,如果您一直致力于快速解决冲突或通过删除目录/符号链接在目录级别进行更新,则情况可能并不总是如此。这个问题的全面答案是这样的。
package.json您想要的内容并删除您不需要的内容。package-lock.json这样的,npm install --package-lock-onlynpm ci。这应该删除所有工件并且不应该重建它们。您可以利用'npm cache'命令下载软件包tarball并将其解压缩到npm cache目录中.
然后可以复制源.
使用从https://groups.google.com/forum/?fromgroups=#!topic/npm-/mwLuZZkHkfU收集的想法,我想出了以下节点脚本.没有保证,YMMV,等等.
var fs = require('fs'),
path = require('path'),
exec = require('child_process').exec,
util = require('util');
var packageFileName = 'package.json';
var modulesDirName = 'node_modules';
var cacheDirectory = process.cwd();
var npmCacheAddMask = 'npm cache add %s@%s; echo %s';
var sourceDirMask = '%s/%s/%s/package';
var targetDirMask = '%s/node_modules/%s';
function deleteFolder(folder) {
if (fs.existsSync(folder)) {
var files = fs.readdirSync(folder);
files.forEach(function(file) {
file = folder + "/" + file;
if (fs.lstatSync(file).isDirectory()) {
deleteFolder(file);
} else {
fs.unlinkSync(file);
}
});
fs.rmdirSync(folder);
}
}
function downloadSource(folder) {
var packageFile = path.join(folder, packageFileName);
if (fs.existsSync(packageFile)) {
var data = fs.readFileSync(packageFile);
var package = JSON.parse(data);
function getVersion(data) {
var version = data.match(/-([^-]+)\.tgz/);
return version[1];
}
var callback = function(error, stdout, stderr) {
var dependency = stdout.trim();
var version = getVersion(stderr);
var sourceDir = util.format(sourceDirMask, cacheDirectory, dependency, version);
var targetDir = util.format(targetDirMask, folder, dependency);
var modulesDir = folder + '/' + modulesDirName;
if (!fs.existsSync(modulesDir)) {
fs.mkdirSync(modulesDir);
}
fs.renameSync(sourceDir, targetDir);
deleteFolder(cacheDirectory + '/' + dependency);
downloadSource(targetDir);
};
for (dependency in package.dependencies) {
var version = package.dependencies[dependency];
exec(util.format(npmCacheAddMask, dependency, version, dependency), callback);
}
}
}
if (!fs.existsSync(path.join(process.cwd(), packageFileName))) {
console.log(util.format("Unable to find file '%s'.", packageFileName));
process.exit();
}
deleteFolder(path.join(process.cwd(), modulesDirName));
process.env.npm_config_cache = cacheDirectory;
downloadSource(process.cwd());
Run Code Online (Sandbox Code Playgroud)
对于windows环境:
"scripts": {
"clean": "rmdir /s /q node_modules",
...
}
Run Code Online (Sandbox Code Playgroud)
小智 5
我在 package.json 中添加了几行:
"scripts": {
...
"clean": "rmdir /s /q node_modules",
"reinstall": "npm run clean && npm install",
"rebuild": "npm run clean && npm install && rmdir /s /q dist && npm run build --prod",
...
}
Run Code Online (Sandbox Code Playgroud)
如果你想要的clean话,你可以使用这个rimraf node_modules。
| 归档时间: |
|
| 查看次数: |
161248 次 |
| 最近记录: |