2017-05-11 54 views
0

所以我采用在我的下一个项目,所有这一切的是一个全新的过程,我模块化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 

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

现在,这是我感到困惑。 如果安装的专用包有前面已经捆绑(从单独的JS文件)的“entry.js”文件,使得单次入境文件具有一切都在我的新项目中的代码需要运行?

如果是这是否意味着我的WebPack运行的每个模块内部捆绑它,以前我用的WebPack捆绑了我的新项目吗?

建议表示赞赏,谢谢。

回答

1

如果安装的私人包有使单一入口文件拥有的一切在我的新项目中的代码需要运行之前已经绑定(从单独的JS文件)的“entry.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

+0

啊!比我想象的更简单。也许我太复杂了。谢谢你清理那个。 –