![](/img/trans.png)
[英]How to make npm package available as a command to electron application
[英]How to make an npm package available to multiple JS modules?
上下文:
我正在从传统的 js/html 前端开发方式转变:
<script src="link-to-the-js-file"></script>
<!-- Now, just use the library... -->
以现代的 npm/js-modules/webpack 方式:
npm install whatever
require('whatever')
whatever.doSomething();
问题:
我对何时以及如何要求将在多个模块中使用的包感到困惑。
假设我的站点中有两个要使用axios的功能。
我会做:
文件: feature.js
/**
* Some JS module where I'll use axios
*/
const axios = require('axios');
export default () => ({
...
axios.doWhatever();
...
});
但是如果有另一个模块也需要 axios 怎么办?
如果我在another- file.js 中需要它,我编译的 JS 中不会多次包含 axios 吗?
所以这让我想到......好吧,我会把它附加到 window scope 并随时从那里使用它。
和 go 类似:
文件:全局文件.js
window.axios = require('axios');
但我不知道这是否是好的做法。
我知道这里不允许基于意见的问题,但必须有一个可靠的通用方法。 我不想“让它工作”,我想以正确的方式做事。 我会感谢你的帮助。
从节点文档:
模块在第一次加载后被缓存。 这意味着(除其他外)每次调用
require('foo')
都会得到完全相同的 object 返回,如果它解析到同一个文件。
所以你基本上(在大多数情况下)使用相同的对象/文件。 但是如果你不想在多个文件中重复你自己,你可以像这样将它添加到全局 scope 中:
axios = require('axios ');
查看更多关于Node.js 缓存的信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.