Javascript 在NodeJS中运行browserify ed应用程序

Javascript 在NodeJS中运行browserify ed应用程序,javascript,node.js,browserify,amd,Javascript,Node.js,Browserify,Amd,这听起来可能有点反常,但我想修改相当大的JavaScript代码库的一部分,以便它可以在NodeJ上运行。代码是以CommonJS风格编写的,具有使用browserify和deamdify的gulp构建过程。我没有设置任何这些东西,我只是对AMD和CommonJS模式略知一二 为了提高性能,我想这样做是为了将一些代码转换为服务器端API,但它仍然需要能够在浏览器中运行 起初我以为我可以简单地使用这些库而不运行browserify,但我遇到了如下错误: /*global define*/ defi

这听起来可能有点反常,但我想修改相当大的JavaScript代码库的一部分,以便它可以在NodeJ上运行。代码是以CommonJS风格编写的,具有使用
browserify
deamdify
gulp
构建过程。我没有设置任何这些东西,我只是对AMD和CommonJS模式略知一二

为了提高性能,我想这样做是为了将一些代码转换为服务器端API,但它仍然需要能够在浏览器中运行

起初我以为我可以简单地使用这些库而不运行browserify,但我遇到了如下错误:

/*global define*/
define([
        './defaultValue'
    ], function(
        defaultValue) {
    "use strict";
ReferenceError:未定义定义

因为有些库是这样写的:

/*global define*/
define([
        './defaultValue'
    ], function(
        defaultValue) {
    "use strict";
看起来我需要运行
deamdify
,这是一个browserify转换…因此我需要运行browserify

然而,这样做的一个缺点似乎是,它生成了一个整体的
Javascript
文件(当然),然后对该文件进行全部解析,并且失败了,因为它包含对不存在的浏览器对象(
document.location
)的引用。我希望不要使用那些引用浏览器对象的代码

所以我的问题是:

  • 是否有关于如何进行的指导?有教程吗?我在谷歌上找不到什么,但我可能用错了词
  • 是否有等同于Browserify的NodeJS?构建一个单一的Javascript文件并运行它似乎有点奇怪,也没有必要 那个服务器端
  • 欢迎提供任何指导、建议等。

    1)在节点内使用(大型)浏览器代码库可能会很有挑战性。我想创建一个为节点提供假浏览器环境的环境模块可以完成这项工作,但这可能需要大量的工作,您必须使用环境模块的引用将每个浏览器环境引用更改为
    窗口
    等。在那里,您可以决定代码在哪个环境中运行,并提供适当的行为(例如,在浏览器中返回
    窗口
    对象,在节点环境中返回不同的内容)

    (二) 首先:browserify是一个运行在nodejs之上的库,所以“nodejs等价于browserify”毫无意义。。。至于避免使用单一的javascript文件:有一些节点模块使您能够在node中使用AMD模块(例如),这可能会有所帮助。另一种方法是将AMD模块转换为节点模块-这取决于AMD模块的数量

    希望这有帮助