gpt4 book ai didi

node.js - 改进express.js模块的使用

转载 作者:太空宇宙 更新时间:2023-11-03 22:48:13 26 4
gpt4 key购买 nike

有一些小事但让我很烦恼。当你想使用 Node 模块时,你必须手动安装它,需要它并将其添加到 package.json 中。如果您不想使用它,则后面的操作是一样的。

是否有一个工具可以在需要模块后自动安装/删除node_modules以及添加/删除package.json。

这是一个简单的东西,即使现在不存在,以后也一定会存在。

最佳答案

这是一个非常有趣的问题。我找不到解决方案,所以我自己写了一个小脚本。想象一下您的主文件包含以下内容。

index.js:

var colors = require('colors');
console.log('this comes from my main file');

如果您没有安装colors并运行node index.js,您将收到错误错误:找不到模块“colors”.

为了完成这项工作,请创建另一个您将运行的 module.js 文件,而不是您的 index.js 文件。

模块.js:

var exec = require('child_process').exec;

try {
// require your main file here
require('./index');
} catch(e) {
if (e.code === 'MODULE_NOT_FOUND') {
var message = e.message;
console.log(message);
var module = message.match(/\'([a-z]+)\'/)[1];
console.log('Installing ' + module + ' ...');
exec('npm install ' + module + ' --save', function(error, stdout, stderr) {
if (error) console.log(error);
console.log(JSON.stringify(stdout).replace(/\\n/g, "") + ' successfully installed');
});
}
}

现在运行node module.js,您将得到以下内容

Cannot find module 'colors'
Installing colors ...
"colors@0.6.0-1 node_modules/colors" successfully installed

如果你再次运行node module.js,你会得到

this comes from my main file // this is what you want

colors 已添加到您的 package.json 文件中。您可以在每个项目中重复使用 module.js,只需更改 require 函数即可获取正确的文件。

关于node.js - 改进express.js模块的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12890494/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com