请将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サーバとして静的ファイル配信/ディレクトリ一覧機能のサンプルコード