请将Node.js配置在移动设备上,以便随时启动简易的Web服务器

尽管你开发了一个方便的Node.js库,但有时候客户的电脑或服务器的生产环境可能没有Node.js的运行环境。所以我搜索了一下,看看有没有办法能够携带Node.js的运行环境。。

    Node.js & npm をインストーラー無しで 手軽にはじめる

以下是一种配置步骤,无需安装程序等,只需解压即可使用的Node.js环境。使用此方法,可以创建一个以执行环境为基础的Zip文件,然后在工作环境中解压该文件,即可完成Node.js环境的配置。

顺便,我们将在Node.js上启动一个Web服务器,以便在任何地方都可以启动一个简易的Web服务器。

配置Node.js的执行环境

从官方网站下载二进制文件。选择 Windows 64位版本的压缩文件(.zip)。截止到2020年03月15日,最新版本似乎是”node-v12.16.1-win-x64.zip”。
下载完成后,请将其解压到任意位置,例如在 T:\Tools\nodejs_portable 文件夹中。

好吧,我认为上述目录中包含有node.exe等文件,现在我会在同一目录下放置一个启动命令run.bat。它的内容如下所示:

@echo off
set PATH=%cd%;%PATH%
set NODE_PATH=%cd%\node_modules\npm\node_modules;%cd%\node_modules\npm
cmd

所谓的就只是将路径添加到这个目录中而已。
基本的环境设置就完成了。

我试试看

现在在资源管理器中双击运行 run.bat,尝试启动 node.js 执行环境吧。

T:\Tools\nodejs_portable>

如果按照这样的方式启动的话就可以了。

T:\Tools\nodejs_portable> node --version
v12.16.1

T:\Tools\nodejs_portable> npm --version
6.13.4

T:\Tools\nodejs_portable>

暂且写个“Hello World”吧。

T:\Tools\nodejs_portable> mkdir app
T:\Tools\nodejs_portable> cd app
T:\Tools\nodejs_portable\app> type index.js  ← あらかじめメモ帳とかで作成しておきましょう
console.log('Hello World.')

T:\Tools\nodejs_portable\app> node index.js  ←実行
Hello World.

T:\Tools\nodejs_portable\app>

执行顺利,接下来我们试试 npm 等是否可以正常工作。

(上でつくったappは一旦削除したとして)
T:\Tools\nodejs_portable> mkdir app
T:\Tools\nodejs_portable> cd app
T:\Tools\nodejs_portable\app> npm init -y
Wrote to T:\Tools\nodejs_portable\app\package.json:

{
  "name": "app",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

我创建了一个类似于下面的 index.js 文件。

T:\Tools\nodejs_portable\app> type index.js
const request = require('request')

request.get('http://www.yahoo.co.jp', (err, res, body) => {
  console.log(body)
})

使用npm i进行安装。

T:\Tools\nodejs_portable\app> > npm i --save request
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN app@1.0.0 No description
npm WARN app@1.0.0 No repository field.

+ request@2.88.2
added 47 packages from 58 contributors and audited 63 packages in 9.683s
found 0 vulnerabilities

T:\Tools\nodejs_portable\app> node index.js

....  ばばっってYahooのサイトがなんか返ってくればOK

T:\Tools\nodejs_portable\app>

好的,没问题!

注意:
关于所谓的全局安装npm install -g xx。
在全局安装时,预期是安装到 T:\Tools\nodejs_portable\node_modules 中,但实际上安装到了已经安装了Node.js的环境下的那个目录。

在已经安装了Node.js的环境中,最好不要进行全局安装。请注意。

简易的web服务器建设

好的,最后是关于WEB服务器。我使用Node.js构建WEB服务器
【Node.js】的简单Web服务器,可以提供静态文件传输/目录列表功能的示例代码
我完全参考了这个教程!非常感谢。

好的,我来试试看。

(上でつくったappは一旦削除したとして)
T:\Tools\nodejs_portable> mkdir app
T:\Tools\nodejs_portable> cd app
T:\Tools\nodejs_portable\app> npm init -y
Wrote to T:\Tools\nodejs_portable\app\package.json:

{
  "name": "app",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

T:\Tools\nodejs_portable\app> npm i --save express
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN app@1.0.0 No description
npm WARN app@1.0.0 No repository field.

+ express@4.17.1
added 50 packages from 37 contributors and audited 126 packages in 10.259s
found 0 vulnerabilities

好的,index.js(网络服务器程序)如下所示,很简单。

T:\Tools\nodejs_portable\app>type index.js
'use strict';

const express = require('express');

const app = express();
app.use(express.static('./dist'));
app.listen(process.env.PORT || 3000);

已经完成了一段JavaScript代码,用于在端口号为3000的情况下启动一个WEB服务器,文档根目录为./dist。

为了通畅性,将简单的HTML放置在./dist文件夹下。

T:\Tools\nodejs_portable\app> mkdir dist
T:\Tools\nodejs_portable\app> type dist\index.html
<html>
<body>

<h1>テスト</h1>
</body>
</html>
T:\Tools\nodejs_portable\app>

试一下

现在让我们尝试启动Web服务器。

T:\Tools\nodejs_portable\app> node index.js
...

好像已经启动了。

我从另一个命令提示符中尝试访问一下。(当然也可以用网络浏览器。)

C:\Users\xx> curl http://localhost:3000/index.html
<html>
<body>

<h1>テスト</h1>
</body>
</html>

好的,沒問題! de, !)

按照惯例,将安装目录(例如T:\Tools\nodejs_portable)打包成Zip文件,可以随身携带,在任何位置解压即可完成简易WEB服务器的设置。尽管它是一个静态WEB服务器,但作为一个简单的前端服务器来说已经足够了。

辛苦了!

相关链接

    • Node.js公式

 

    • Node.js & npm をインストーラー無しで 手軽にはじめる

 

    [Node.js] 簡単なWebサーバとして静的ファイル配信/ディレクトリ一覧機能のサンプルコード
bannerAds