如何启动这个 Node.JS 应用程序?

How can I start this Node.JS application?

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

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

如何在 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 以寻找 "run" 命令,但只找到了这些

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

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

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

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

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

更新 1: 运行 npm installbpmn-js-diffing 目录中。然后再次尝试运行 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)

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

Node.Js 生态系统的一大部分是 npm,它随 NodeJS 一起提供。这就是管理依赖关系的方式。 许多 NodeJS 程序都会有一个 package.json file which describes various things about them, like for example what are their dependencies. By running npm install NPM 会查看程序需要哪些包,并自动安装它们。

在节点 js 中,每当您使用 require('module_name') 时,它都会搜索项目目录中的 node_module 文件夹,或者它可以转到全局 node_module 文件夹。如果没有需要的模块,会提示找不到模块module_name,可以做npm i module_name解决。此外,您可以使用 npm i module_name --save 命令将所有必需的依赖项保存在 package.json 文件夹中,这样如果您需要 运行 在不同环境中使用相同的代码,则无需单独安装每个模块只需要做 npm i 并且如果将引用 package.json 文件夹并安装依赖项。

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

bpmn-js-diffing

是设计用于插入上述应用程序的模块。

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

为了让 网络应用程序 正常工作,您必须将 /app/assets/resources 上传到网络在线 Web 服务器的根目录并导航到 https://<domain>/app/index.html.

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

这是运行此应用程序

的程序

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

To display the code, either open the Sources tab in Chromium Developer tools or open the 3.2 MB file. The last line begins with // # sourceMappingURL =. Copy and paste each character from data: application / json; base64,at the end of the line (XX0 =) in the address bar of a browser.

安装

$ 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 了解更多信息)