方案:
想象您正在使用hapi
等框架构建Web应用程序,并且知道当您npm install hapi --save
安装多个&#34; < EM>应用&#34;在 it node_modules
(例如:boom
,joi
,hoek
,等。)
问题:
我们是否可以避免在项目中明确重新安装 Joi
并使用 my_app/node_modules/hapi/node_modules/joi/lib/
中包含的模块,例如:在我的server.js
文件中:
var Hapi = require('hapi');
var Joi = require('./node_modules/hapi/node_modules/joi/lib/'); // good or bad idea? Why?
var server = new Hapi.Server();
server.connection({ port: 3000 });
server.route({
method: 'GET',
path: '/{name*}',
config: {
validate: { // validate using Joi
params: {
name: Joi.string().max(40).min(2).alphanum()
}
},
handler: function (req,reply) {
reply('Hello '+ req.params.name + '!');
}
}
});
server.start(function() {
console.log('Now Visit: http://localhost:3000/YOUR_NAME_HERE')
});
虽然在表面上多次安装相同node_modules
的想法似乎是合乎逻辑的,但我们想知道这样做的真正的世界陷阱?
明显的优势在于,当您更新对Hapi
的依赖时,您还将获得其所有最新版本的&#39; dependencies
潜在的缺点是您不知道其中一个dependencies
中的突然发生变化的时间。什么其他 ......?
注意:我/我们目前没有在我们的任何Node.js代码中执行此操作,但有人问我 为什么不呢? 今天我没有为他们提供全面的答案...... &#34; 因为这是不好的做法...... &#34;不是一个好的答案,我们希望理解 为什么 ......没有4 monkeys in a room "reason"