簡體   English   中英

試圖制作 NPM package

[英]Trying to make an NPM package

基本上,我試圖在我的主項目文件中制作一個看起來像這樣的 package

const package = require("package");
const newPackage = new package({
  param: 'value',
  otherParam: 'otherValue'
});

然后在我可以使用的所有其他項目文件中

const { someFunction } = require('package')

someFunction()

然后SomeFunction() function 應該返回valueotherValue而不需要做

const package = require("package");
const newPackage = new package({
  param: 'value',
  otherParam: 'otherValue'
});

newPackage.someFunction()

在每個項目文件中。

我不確定如何做到這一點,或者這是否可能,但我會喜歡類似(或類似)這樣的東西。

雖然可以做到這一點,但它會涉及一些非常臭的代碼 - package 必須調用構造函數產生副作用並返回一個未使用的實例。 對於非常細微的調整,請考慮是否可以更改初始化代碼

const package = require("package");
const newPackage = new package({
  param: 'value',
  otherParam: 'otherValue'
});

類似於

const { init } = require("package");
init({
  param: 'value',
  otherParam: 'otherValue'
});

那將是非常可行的,而且不臭。 將一個變量放入包的 scope 中,在調用init時分配給該變量,並在調用someFunction時返回該變量。

let initObj;
module.exports = {
  init(obj) {
    initObj = obj;
  },
  someFunction() {
    return initObj;
  }
};

實時片段:

 const theModule = (() => { let initObj; return { init(obj) { initObj = obj; }, someFunction() { return initObj; } } })(); theModule.init({ param: 'value', otherParam: 'otherValue' }); console.log(theModule.someFunction());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM