所以我在下一个项目中采用了模块化的 JS 方法,所有这一切对我来说都是一个全新的过程。 由于我目前的经验有限,因此最好让事情变得简单一些。
所以我在 npm 上放了我的私有(private)包:
@name/package-name
现在,我的私有(private)包由多个具有导出功能的 JS 文件组成,以在开发期间保持模块化和干净。
我将此包消耗到我的新项目中:
npm i @name/package-name -S
我使用 webpack、requireJS 等加载器/ bundler 从我的 node_modules 中获取我的包:
var test = require('@name/package-name');
...
//use the imported code
因此,这会导致要求在其定义的入口点进入我的包。
现在这就是我困惑的地方。 安装的私有(private)包是否应该有一个先前捆绑的“entry.js”文件(来自单独的 JS 文件),以便单个条目文件包含我的新项目中的代码需要运行的所有内容?
如果是这样,这是否意味着我在使用 webpack 捆绑我的新项目之前,在每个模块本身中运行 webpack 来捆绑它?
感谢您的建议,谢谢。
最佳答案
Should the installed private package have an 'entry.js' file which has been previously bundled(from the separate JS files) so that single entry file has everything the code in my new project needs to run?
您不需要捆绑它,特别是对于 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')
时, Node 将运行 index.js
和 require()
foo.js
和 bar.js
文件,方法是在代码执行时从文件系统加载它们。
这个动态要求链是原因之一 Node.js entrypoints are slow :
关于javascript - 捆绑在已安装的私有(private)模块中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43925837/