所以我在下一个项目中采用模块化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捆绑我的新项目?
建议表示赞赏,谢谢。
答案 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.js
和require()
foo.js
和bar.js
文件代码执行。
这个dynaimc require-chain是Node.js entrypoints are slow:
的原因之一