![](/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.