在已安装的私有模块中捆绑?

时间:2017-05-11 21:27:58

标签: javascript node.js module webpack webpack-2

所以我在下一个项目中采用模块化JS方法,所有这些对我来说都是一个全新的过程。 因为我目前的经验有限,所以要保持相当愚蠢。

所以我把我的私人包裹放在了npm:

@name/package-name

现在,我的私有软件包包含几个带有导出的JS文件,以便在开发时保持模块化和清洁。

我把这个包用在我的新项目中:

npm i @name/package-name -S

我需要使用我的node_modules中的包,使用诸如webpack,requireJS之类的加载器/捆绑器:

var test = require('@name/package-name');
...
//use the imported code

因此,这会导致require在其定义的入口点输入我的包。

现在这是我感到困惑的地方。 安装的私有软件包是否有一个先前已捆绑的'entry.js'文件(来自单独的JS文件),以便单个条目文件包含我新项目中的代码需要运行的所有内容?

如果是这样,这意味着我在每个模块中运行webpack来捆绑它,然后再使用webpack捆绑我的新项目?

建议表示赞赏,谢谢。

1 个答案:

答案 0 :(得分:1)

  

安装的私有软件包是否有一个先前已捆绑的'entry.js'文件(来自单独的JS文件),以便单个条目文件包含我新项目中的代码需要运行的所有内容?

您不需要捆绑它,尤其是对于Node.js服务器端代码。假设您的模块具有以下文件结构:

node_modules/@name/package-name/index.js
node_modules/@name/package-name/foo.js
node_modules/@name/package-name/bar.js

index.js包含:

var foo = require('./foo.js');
var bar = require('./bar.js');

当您从项目中运行require('@name/package-name')时,节点将从文件系统加载index.jsrequire() foo.jsbar.js文件代码执行。

这个dynaimc require-chain是Node.js entrypoints are slow

的原因之一