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

6
有一个开源的应用程序,它可以在视觉上显示两个BPMN图之间的差异。该应用程序可以在GitHub上找到。
我想看看该应用程序运行时的效果。
我该如何在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:在 bpmn-js-diffing 目录下运行了 npm install 命令。然后在 bpmn-js-diffing/app 目录下再次尝试运行 node app.js 命令。以下是结果:
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)


2
你安装了Node依赖吗?npm install? - Madhawa Priyashantha
好像他没有。 - Sagar Chaudhary
@MadhawaPriyashantha npm install没有起作用。请查看Update 1 - Glory to Russia
npm i bpmn-js-diffing - Ivan Rubinson
我有一种感觉,该模块正在使用 bpmn-js-diffing 引用自身。你可以尝试在 app.js 中将 Diffing = require('bpmn-js-diffing') 替换为 Diffing = require('.')。或者你可以尝试将当前文件夹链接到 node_modules 文件夹。在 *nix 系统上,你可以执行类似以下命令:ln -sf $(pwd)/ ./node_modules/bpmn-js-diffing,但我觉得这是一个不太可靠的解决方案... - kristofferostlund
7个回答

5

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


谢谢。这并没有完全解决问题。请查看我问题中的更新1 - Glory to Russia

4

您需要安装jQuery模块。请使用命令'npm i jquery'进行安装。


谢谢。这并没有完全解决问题。请查看我问题中的更新1 - Glory to Russia

2

在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文件夹并安装所有依赖项。


2
据我所知,您正在尝试运行一个Node.js模块。 我认为您尝试运行的应用程序是这个

bpmn-js-diffing

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

2
这是一个网页应用程序,不是用NodeJS运行的,而是在浏览器中运行。它使用jQuery操作DOM;NodeJS没有DOM。它使用GruntBrowserify来构建/app目录下的内容,但已经有了构建好的应用程序。如果你想重新构建它,你需要安装grunt,使用npm install -g grunt-cli命令,并在项目根目录下执行grunt --force命令,但如果你不进行任何更改,只想上传应用程序,那么你不需要这样做。
为了使网页应用程序正常工作,您需要将/app/assets/resources上传到在线Web服务器的Web根目录,并导航到https://<domain>/app/index.html

2

以下是运行此应用程序的步骤:

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

要显示代码,请打开Chromium开发人员工具中的Sources选项卡或打开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 上运行)

bpmn-js-diffing demo

您可以通过从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 - Stephane Janicaud

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接