javascript - 捆绑在已安装的私有(private)模块中?

标签 javascript node.js module webpack webpack-2

所以我在下一个项目中采用了模块化的 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.jsrequire() foo.jsbar.js 文件,方法是在代码执行时从文件系统加载它们。

这个动态要求链是原因之一 Node.js entrypoints are slow :

关于javascript - 捆绑在已安装的私有(private)模块中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43925837/

相关文章:

javascript - 有什么方法可以从 Canvas 获取从远程视频绘制的图像数据吗?

node.js - 当我尝试运行包含 jquery 的文件时,nodejs 出现错误

ruby - 如何在动态生成的模块中运行 Proc?

python - 有没有更好的方法从 Python 模块导入变量?

javascript - CSS 选择器相当于backbone.js 中的jQuery.find?

javascript - 我如何简化这段代码?将文件json转换为数组json

javascript - 如何修复导航栏位置?

javascript - 使用 MEAN 堆栈从 MongoDB 删除数据

javascript - 如何使用 hygen 生成模板后运行脚本?

javascript - Durandal TodoMVC - 无法将值写入 ko.compulated