Javascript 将NPM包连接到一个JS文件中

Javascript 将NPM包连接到一个JS文件中,javascript,node.js,npm,parse-platform,browserify,Javascript,Node.js,Npm,Parse Platform,Browserify,我正在尝试使用Express处理(模板语言)。解析云代码是不允许NPM的节点/快速主机。荒谬,我知道。不过,我仍然可以使用requires语句将外部文件加载到代码中,所以我认为我有希望能够实现这一点 因此,我的问题是如何将整个Swig包放入一个JS文件中,我可以从我的Parse Express应用程序中包括该文件,如下所示: var swig = require("./cloud/swig.js"); 值得注意的是,解析中断需要语句,这样NPM包在不修改node_modules文件夹中的每个文

我正在尝试使用Express处理(模板语言)。解析云代码是不允许NPM的节点/快速主机。荒谬,我知道。不过,我仍然可以使用requires语句将外部文件加载到代码中,所以我认为我有希望能够实现这一点

因此,我的问题是如何将整个Swig包放入一个JS文件中,我可以从我的Parse Express应用程序中包括该文件,如下所示:

var swig = require("./cloud/swig.js");
值得注意的是,解析中断需要语句,这样NPM包在不修改node_modules文件夹中的每个文件的情况下就无法正常工作,从而使其路径中有
cloud
(这就是为什么我上面的路径中有
cloud
)。在上传大量小文件时,解析也会阻塞。在这个平台上需要连接

我已经试着用browserify玩了几个小时,但是当我用require语句加载browserify文件时,我所做的任何事情都不会暴露Swig对象。我认为这可能是一个正确的选择,因为Browserified文件包括来自Swig的所有文件,但它不会对外公开这些文件

我的问题是,这是否可以在browserify中实现,如果可以,如何实现?或者,是否有其他方法将NPM repo连接到一个文件中,以便更容易从该平台中包含它


非常感谢。

Browserify不是适合这项工作的工具

顾名思义,browserify用于生成要在浏览器中执行的文件。它从入口点(即传递给browserify的一些JS文件)遍历require调用,并将它们绑定到一个对象中,该对象将它们的名称映射到包装模块的函数。它不希望
require
函数已经存在,也不使用它。它替代了自己的
require
实现,该实现只做一件事:从bundle中查找名称,执行匹配函数并返回其
exports

理论上,您可以
要求
一个browserify包,但它只会返回一个空对象(尽管它可能会与globals混淆)。而且它很可能会崩溃,因为捆绑的模块认为它们是在浏览器中执行的。这没有任何好处

如果您想继续使用主机,唯一明智的选择是从本地项目文件夹复制
node\u modules
文件夹。如果您的计算机和服务器不是100%兼容(例如32位对64位,Debian对RedHat,OSX/Windows对Linux),这可能不起作用,但这主要取决于您的确切依赖关系(基本上,使用
node gyp
构建的任何内容都可能有问题)


Node.js在自动查找
require
调用中的依赖项时使用
Node\u modules
文件夹。如果您可以在服务器上以某种方式获得一个包含正确内容的
node\u modules
文件夹,
require(“foo”)
只要
node\u modules
包含一个模块
foo

,最终,您试图在解析云代码中使用npm模块,但目前不可能:

<>但是如果你只是尝试使用SWIG,那么作为一个工作,你可以考虑使用。解析已包含下划线:


也许您可以尝试使用swig的浏览器版本,还有,你有没有试着用它作为你的BFy入口点?输出文件-您应该能够在ParseCloud项目中要求该文件。更改宿主?或者,如果出于任何原因,它不是一个选项,zip/unzip?browserify不会这么做-你需要文件夹结构,而不是一个文件。在发布答案之前,你没有阅读作者的问题,因为他指出他不能在解析云中使用NPM。他没有尝试使用npm模块。他正试图将一个npm模块连接到一个文件中,以便他可能需要它。需要一个文件就行了。失败。