【问题标题】:How can I start this Node.JS application?如何启动这个 Node.JS 应用程序?
【发布时间】:2019-08-03 12:02:59
【问题描述】:

有一个开源的application 可以直观地显示两个 BPMN 图之间的差异。

我想看看应用程序运行时的样子。

如何在 Ubuntu 下启动它?

我尝试在目录bpmn-js-diffing/app 中运行node app.js,但出现错误

module.js:341
    throw err;
    ^

Error: Cannot find module 'jquery'
    at Function.Module._resolveFilename (module.js:339:15)
    at Function.Module._load (module.js:290:25)
    at Module.require (module.js:367:17)
    at require (internal/module.js:16:19)
    at bpmn-js-diffing/app/app.js:6:11
    at Object.<anonymous> (bpmn-js-diffing/app/app.js:435:3)
    at Module._compile (module.js:413:34)
    at Object.Module._extensions..js (module.js:422:10)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)

我查看了Gruntfile 以寻找“运行”命令,但只找到了这些

grunt.registerTask('test', [ 'karma:single' ]);

grunt.registerTask('auto-test', [ 'karma:unit' ]);

grunt.registerTask('default', [ 'jshint', 'test', 'browserify:standaloneViewer', 'jsdoc' ]);

在我看来,它们看起来像是用于运行自动化测试和生成文档的命令,而不是用于运行实际应用程序的命令。

那么我该如何启动这个应用程序呢?

更新 1:bpmn-js-diffing 目录中运行 npm install。然后尝试再次运行node app.js(在bpmn-js-diffing/app)目录中。结果如下:

bpmn-js-diffing/app$ node app.js 
module.js:341
    throw err;
    ^

Error: Cannot find module 'bpmn-js-diffing'
    at Function.Module._resolveFilename (module.js:339:15)
    at Function.Module._load (module.js:290:25)
    at Module.require (module.js:367:17)
    at require (internal/module.js:16:19)
    at bpmn-js-diffing/app/app.js:9:17
    at Object.<anonymous> (bpmn-js-diffing/app/app.js:435:3)
    at Module._compile (module.js:413:34)
    at Object.Module._extensions..js (module.js:422:10)
    at Module.load (module.js:357:32)
    at Function.Module._load (module.js:314:12)

【问题讨论】:

  • 您是否安装了节点依赖项? npm 安装?
  • 看起来他没有
  • @MadhawaPriyashantha npm install 没有帮助。请参阅更新 1
  • npm i bpmn-js-diffing
  • 我感觉模块用bpmn-js-diffing 引用自己。您可以尝试在app.js 中将Diffing = require('bpmn-js-diffing') 替换为Diffing = require('.')。或者您可以尝试将当前文件夹符号链接到 node_modules 文件夹。在基于 *nix 的系统上,您可以执行以下操作:ln -sf $(pwd)/ ./node_modules/bpmn-js-diffing,尽管我觉得这是一个不确定的解决方案...

标签: javascript node.js gruntjs


【解决方案1】:

Node.Js 生态系统的一个重要组成部分是 npm,它与 NodeJS 一起提供。这就是依赖关系的管理方式。 许多 NodeJS 程序都有一个 package.json 文件,该文件描述了关于它们的各种信息,例如它们的依赖关系。通过运行npm install NPM 会查看程序需要哪些包,并自动安装它们。

【讨论】:

  • 谢谢。这并没有完全解决问题。请参阅我的问题中的 Update 1
【解决方案2】:

您需要安装 jquery 模块。 'npm i jquery'。

【讨论】:

  • 谢谢。这并没有完全解决问题。请参阅我的问题中的 Update 1
【解决方案3】:

这是运行此应用程序的过程

我终于发现你甚至不需要执行npm install 命令来运行这个项目。 事实上,app/bpmn-viewer.js 文件在其源映射中嵌入了所有必要的模块。

要显示代码,请在 Chromium Developer 工具中打开“源”选项卡或打开 3.2 MB 文件。最后一行以// # sourceMappingURL = 开头。 将data: application / json; base64,中的每个字符复制并粘贴到浏览器地址栏中的行尾(XX0 =)。

安装

$ git clone https://github.com/bpmn-io/bpmn-js-diffing
$ cd bpmn-js-diffing

在端口 7357 上启动本地 HTTP 服务器
不要更改目录,您必须在项目根目录中运行此命令

python -m SimpleHTTPServer 7357

运行

在浏览器中打开http://127.0.0.1:7357/app/

演示(在 Ubuntu 18.04 上运行)

您可以通过从resources/ 目录加载其他文件来比较它们。

您可以使用任何本地 HTTP 服务器来代替嵌入式 python 服务器,例如 live-server
这样做,在项目根目录运行以下命令:

npm install live-server
./node_modules/.bin/live-server

然后浏览到http://127.0.0.1:8080/app(默认端口8080可以更改,运行live-server --help获取更多信息)

【讨论】:

  • 更新了,运行应用程序终于比我想象的简单多了。如果目标是更新、测试和构建应用程序,那么您必须运行 npm install 以及更多模块,例如 grunt, grunt-cli, karma, jsdoc, jshint
【解决方案4】:

在 node js 中,每当您使用 require('module_name') 时,它都会搜索您项目目录中的 node_module 文件夹,或者它可以转到全局 node_module 文件夹。如果需要的模块不存在,会给出Cannot find module module_name,可以通过npm i module_name来解决。此外,您可以使用 npm i module_name --save 命令将所有必需的依赖项保存在 package.json 文件夹中,这样如果您需要在不同的环境中运行相同的代码,您不需要单独安装每个模块,您只需要执行 npm i 和如果将引用 package.json 文件夹并安装依赖项。

【讨论】:

    【解决方案5】:

    据我了解,您正在尝试运行 Node.js 模块。 我认为您尝试运行的应用程序是 this

    bpmn-js-diffing

    是为插入上述App而设计的模块。

    【讨论】:

      【解决方案6】:

      这是一个不打算使用 NodeJS 运行的 Web 应用程序,而是在浏览器中运行。它使用 jQuery 操作 DOM; NodeJS 没有 DOM。它使用GruntBrowserify 构建/app 目录的内容,但它已经构建了应用程序。如果你想重建它,你必须使用npm install -g grunt-cli 安装 grunt 并在项目根目录中执行grunt --force,但如果你不做任何更改并且只想上传应用程序,则不必这样做.

      为了让网络应用程序正常工作,您必须将/app/assets/resources 上传到在线网络服务器的网络根目录并导航到@987654329 @。

      【讨论】:

        【解决方案7】:

        这样做:
        1. 将 app.js 文件中的 Diffing = require('bpmn-js-diffing'); 替换为 Diffing = require('../index');
        2.安装npm i jsondiffpatch
        3.node app.js

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-12-10
          • 2014-02-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-01-20
          • 2013-05-29
          相关资源
          最近更新 更多