NPM包:最佳实践和公开多个导入路径

jab*_*tta 8 javascript node.js npm webpack package.json

我创建了一个使用Webpack和Babel进行转换/捆绑的NPM包.

在我package.json,我有主要的"main": "build/index.js".在我的Webpack配置中,我有条目设置entry: { app: './src/index.js' }.我的输入文件如下所示.

安装软件包时一切正常.但是,使用此设置,每个帮助程序都会公开两个导入路径:

这对于支持自动导入的编辑器来说是一个问题,因为它们有时会自动导入'my-package/build/utils/helper1'而不是首选路径'my-package'.

那么,有两个问题:

  1. 有没有办法阻止更长的导入路径暴露?
  2. 创建NPM包时最佳做法是什么.我的设置是否可接受,或者我应该做些不同的事情?

条目文件:

import helper1 from './utils/helper1';
import helper2 from './utils/helper2';

export {
  helper1,
  helper2,
};

const myPackage = {
  helper1,
  helper2,
};

export default myPackage;
Run Code Online (Sandbox Code Playgroud)

ant*_*rek 0

我建议可能将您的helper1和合并helper2到一个文件中并命名它helpers,然后您可以将它们放入 中class myPackage,以便您将它们导出为这样的模块

import myPackage from './utils/helper';
// OR import {helper1, helper2} from './utils/helpers';


export default class myPackage {
      helper1,
      helper2,
};
Run Code Online (Sandbox Code Playgroud)

或者

import {myPackage} from './utils/helpers';    
// OR import {helper1, helper2} from './utils/helpers';


module.exports.myPackage = (helper1, helper2) => {
  this.helper1 = helper1;
  this.helper2 = helper2;
};
Run Code Online (Sandbox Code Playgroud)

我希望这有帮助。