sudo npm install 找不到命令

sudo npm install -g packname 执行提示 找不到npm命令。

这是因为您的登陆用户环境和sudo执行的环境有一定的差异。

首先,我们需要在 vi /etc/profile 里将node的bin目录已经加到path里。
然后将node 和 npm 都做个软链接到 /usr/bin/ 目录下。

我的node目录是在 /usr/loacl/src/node-v16.15

sudo ln -s /usr/local/src/node-v16.15/bin/node /usr/bin/node
sudo ln -s /usr/local/src/node-v16.15/bin/npm /usr/bin/npm

然后再执行 sudo npm install -g 就可以了

 

基于php编写桌面应用

如果将一个网站直接打包成一个桌面应用,有很多应用解决方案。比如:electron nwjs(node-webkit) 包括c# delphi等嵌入一个web插件。

但是我们知道要是考虑到h5和css3的支持,还是需要些友好的浏览器内核。而 electron和nwjs都是基于chormium的。

比如我们要将一个SAAS系统打包成一个桌面端软件。系统入口:http://bech.cc/saas/pms

这里介绍nwjs的解决方案。虽然很多人都说electron好, 但是我看到目前国内CocosCreator 、微信开发者工具都是用的nwjs,还有其它很多的软件用它做代理,比如一些数字货币交易所的桌面端软件(win\mac\linux)。

1. 下载nwjs

2. 新建项目文件夹 saas ,在根目录下创建 package.json{
"name": "saastest",
"version": "0.1.0",
"description": "BechTech",
"main": "http://bech.cc/saas/pms/",
"window": {
"width": 1280,
"height": 800,
"position" : "center",
"icon": "./icon.png"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"dist": "build --tasks win-x64 --mirror https://npm.taobao.org/mirrors/nwjs/ .",
"start": "run --x64 --mirror https://npm.taobao.org/mirrors/nwjs/ ."
},
"build": {
"nwVersion": "0.46.3",
"win":{
"productName": "BechTech",
"copyright": "Copyright © 2009-2020 BechTech",
"icon": "./favicon.ico"
}
},
"dependencies": {},
"devDependencies": {
"nwjs-builder-phoenix": "^1.15.0"
}
}

3. 将nw.exe的目录放到环境PATH下。切换到目录下

nw saas  //启动查看本地窗口

这里启动后就相当于封装完了软件

4. 打包与发布

这里用官方推荐的 nwjs-builder-phoenix (推荐) 具体方法去git上查看

打包执行命令 npm run dist

后续会生成 dist\saas-0.1.0-win-x64 文件夹

这里要多重复实验才能成功,如果你英文阅读文档功底可以一次就够了。


我们再看另外一种情况,如果你的系统必须局域网内或者vpc访问

其实,这种情况我们经常会碰到,比如为了数据安全 或者考虑到无网环境运行。总之,你需要一个本地服务器。

我们一般的解决方案是配置一个本地的php开发环境。如果集成的会更快如 appserv xmpp phpstudy等等。

但是我们更希望要一个完全的可发布的一体化解决交付方式。

这里我们可以利用php5.5的命令快速实现一个解决方案。然后再用nwjs打包。每一个项目都是一个完美的桌面端软件且运行在本地的localhost.

下载php5.5 win-x86

1. 复制 php.exe php.ini-production ext\ extras\

2. 新建一个www文件夹。这里放的是网站程序 路由入口 index.php( 支持大部分框架 如 TP3)

3. 回到 nwjs 项目根目录下 写一个批处理程序 runserv.bat

@echo off
path = %path%;.\php\;
php.exe -S localhost:8080 -t php\www

4. 写一个main.js 用nodejs 的child_process模块执行批处理脚本

5. package.json 的main 加载 localhost:8080

6. 用nwjs打包

这样一个基于php本地架构的服务方案就完成了。

 

Nodejs+Selenium webdriver自动化测试

  • 安装webdriver

npm install selenium-webdriver –save

  • 安装chrome驱动

npm install chromedriver –save

这里一般会要求科学上网,最好手动去 http://npm.taobao.org/mirrors/chromedriver/ 找到对应版本复制到chrome安装目录下。并设置全局变量。

  • 初始化并打开一个网址

var webdriver = require(‘selenium-webdriver’);
var driver = new webdriver.Builder() .forBrowser(‘chrome’) .build();
driver.get(‘http://www.baidu.com’);