可以把把软件所在的整个目录复制到桌面上。动态链接库和EXE文件放在同一目录会加快程序的运行速度,如果不放在一个目录就要在EXE等可执行文件的内核代码增加转向指令。当程序使用 DLL 时,具有以下的优点: 使用较少的资源,当多个程序使用同一个函数库时。
DLL可以减少在磁盘和物理内存中加载的代码的重复量。这不仅可以大大影响在前台运行的程序,而且可以大大影响其他在Windows *** 作系统上运行的程序。推广模块式体系结构DLL有助于促进模块式程序的开发。这可以帮助您开发要求提供多个语言版本的大型程序或要求具有模块式体系结构的程序。
相关信息
当某个程序或 DLL 使用其他 DLL 中的 DLL 函数时,就会创建依赖项。因此,该程序就不再是独立的,并且如果该依赖项被损坏,该程序就可能遇到问题。例如,如果发生下列 *** 作之一,则该程序可能无法运行: 依赖 DLL 升级到新版本。
修复了依赖 DLL。 依赖 DLL 被其早期版本覆盖。 从计算机中删除了依赖 DLL。这些 *** 作通常称为 DLL 冲突。如果没有强制实现向后兼容性,则该程序可能无法成功运行。对于旧程序,请使用空 local 文件。每个方法都告诉 *** 作系统使用位于程序根文件夹中的专用 DLL。
写java代码,遇到问题首先去找相关的第三方APi,已经成为习惯了,java的第三方api真的是太多了。不过也不用羡慕java,nodejs也不少,看看官网的介绍:
官方文档的最下面 Appendix 1: Recommended Third-party Modules ,这里是关于第三方模块的介绍,第一段:There are many third party modules for Node At the time of writing, August 2010, the master repository of modules is the wiki page 打开这个链接你会发现相当多的第三方模块,上百个是少不了的。
要安装使用这些模块需要使用npm(Node Package Manager)工具,该工具nodejs已经集成,这个工具给我感觉像maven。打开命令行,执行npm -h(通常命令行应用程序都可以这样查看帮助,或者是/,--help),结果如下:
发现有install和uninstall命令,这个就应该是安装和卸载的命令。根据说明以下方式可以查到具体帮助
npm install -h 结果如下:
这个帮助比较简单,具体的可以使用
npm help install 结果如下:
网页有该命令非常详细的介绍。uninstall也同样使用上述方法。
通常在网上看到安装是使用的这种方式 npm install connect,即 npm install <name>。那为什么只是给了name它就能安装,安装地址在哪啊?
install文档中提到了 a <name>@<version> that is published on the registry with (c)
那就看以下registry 的说明,文档下方SEE ALSO中有链接
registry文档中有下面一段话 To resolve packages by name and version, npm talks to a registry website
that implements the CommonJS Package Registry specification for reading package info
可以看出名称是由它来解析的,那地址在哪了,下面还有一句
The registry URL is supplied by the registry config parameter See config(1) for more on managing npm's configuration
我们在看一下 config(1) 链接,查看config文档,它就是一个全局设置,文档中有下面这段话:
registry
Default: >
Type: url
The base URL of the npm package registry
看到这个默认地址了吧,就是从这来的。这个就是官方地址:
The official public npm registry is at >
基本上了解了。
在看一下安装到哪,cmd输入 npm help npm 查看npm文档,有这段描述:
See folders(1) to learn about where npm puts stuff
In particular, npm has two modes of operation:
global mode:
npm installs packages into the install prefix at prefix/lib/node_modules and bins are installed in prefix/bin
local mode:
npm installs packages into the current project directory, which defaults to the current working directory Packages are installed to/node_modules, and bins are installed to /node_modules/bin
Local mode is the default Use --global or -g on any command to operate in global mode instead
意思很简单,我就不翻译了,点击folders(1)链接,查看folders文档,有以下内容:
Local install (default): puts stuff in /node_modules of the current package root
Global install (with -g): puts stuff in /usr/local or wherever node is installed
Install it locally if you're going to require() it
Install it globally if you're going to run it on the command line
If you need both, then install it in both places, or use npm link我们通常使用require(),所以通常使用本地安装不使用全局安装。
文档下方还有 prefix Configuration 、Node Modules 、Executables 三段介绍,看过以后可以有更具体的了解,我就不多说了。
看express官方文档,可以证实:
Installation
$ npm install expressor to access the express(1) executable install globally:
$ npm install -g express到哪去找我需要的模块,有个网站必须提一下,>
最近在研究以下几个第三方模块,分别介绍以下:
1 上传文件:node-formidable 官网 >
2>
3web框架:express 提供了一个类似struts的框架,官网 >
4web socket:SocketIO 官网 >
5mongodb:nodejs访问mongodb,官网>
先来formidable做个安装试验:
cmd切换到工作目录,我的是D:\WebSite,
输入npm list
说明该目录没有安装任何东西
在该工作目录下建名为uploadjs的文件,内容如下:
[javascript] view plaincopy
输入node uploadjs
运行报错。
开始安装输入npm install formidable,要等一会
安装成功。该目录下会生成node_modules文件夹。
现在可以使用了,再输入 node uploadjs
不报错了,证明安装成功可以使用。关于上传代码的实现,下次再讲。
var formidable = require('formidable');
前端日常开发中,会遇见各种各样的cli,比如一行命令帮你打包的webpack,一行命令帮你生成vue项目模板的vue-cli,还有创建react项目的create-react-app等等等等。这些工具极大地方便了我们的日常工作,让计算机自己去干繁琐的工作,而我们,就可以节省出大量的时间用于学习、交流、开发、 逛steam 。
但是有时候一些十分特别的需求,我们是找不到适合的cli工具去做的。比如说,你的项目十分庞大,你给项目添加一个新的路由,要经过 创建目录 -> 创建vue文件 -> 更新vue-router的路由列表 这一趟流程,就算快捷键创建目录文件用得再熟悉,也比不过你一行命令来得快,特别是路由目录嵌套深,vue文件初始化模板复杂的时候。
所以呢,何不为自己项目写一个cli?就专门做这些繁琐的活?
nodejs的cli,本质就是跑node脚本嘛,基本上每位前端er都会:
然后命令行调用
可以做得更逼真一点,我们在packagejson里面的scripts字段上添加一下脚本名:
然后命令行调用:
但是,看到这里你肯定会说,人家webpack还有vue-cli都是“有名字”的!什么 vue-cli init app 、 webpack -p 的,多漂亮,看看这个命令行, node indexjs ,还 npm run hello ,谁不会啊,丑不拉几的,怕又不是来水文章的哦?差评!!
别急啊各位大人,接下来就说说,如何给这个node脚本起个名字。
姑且,先把这个cli的名字命名为 hello-cli ,就是我们能够在命令行里面,输入 hello-cli ,然后它就打印一句 hello world ,没有 node 也没有 npm ,就是:
这样,你的第一个cli脚本就成功安装了,可以在命令行里面,直接敲你的cli名字,看看结果输出吧。
另外,如果你仅希望你的cli脚本仅在项目里执行,则需要在你项目里面新建一个目录,重复上述的 *** 作,只是在第三步的时候,不要llink到全局里面去,而是使用 npm i -D file:<你的脚本cli目录路径> ,把它当成项目的依赖安装到node_modules里面去,如果安装成功,那么在项目的packagejson你会看到多了一条依赖,这条依赖的值不是版本号,而是你脚本的路径。然后在node_modules里面会有一个bin目录,里面就存放着你的可执行文件。
当然,这样安装的cli脚本,必须在项目的packagejson的scripts字段上声明脚本命令,然后通过 npm run 的方式执行。
哦?这样子使用的话不就回到最最最开始的时候那种原始的 npm run hello 一样么。
是的,但是有质的区别。使用 node indexjs 这种方式调用的话固然简单灵活,但是严重依赖脚本路径,一旦目录结构发生变动,写在scripts的命令就要更改一次;但是使用npm安装之后,本地的cli脚本就被拉到node_modules里面,目录结构变动对其影响不大。其次是不利于分享与发布,如果你想把你的cli脚本发布出去,那么有一个好听响亮的名字,比起在说明文档里面告诉使用者如何找到你的脚本路径再用node执行它,简直好上那么一万倍不是么?
这里也给我们提供了一个cli开发流程思路:
名字有了,输出也有了,看看我们跟那些大名鼎鼎的cli工具,在形式上还差点啥?对了,人家可以支持不同参数选项的,还可以根据输入的不同,产生不同的结果。
这样吧,我们给这个cli加一个功能,既然叫 hello-cli ,那不能只会 hello world 吧,必须要见谁就说 hello 才行:
虽然这个功能很简单,但是至少也是实现了“根据输入的不同,产生不同结果”的效果。
命令行上的参数,可以通过 process 这个变量获取, process 是一个全局对象而不是一个包,不需要通过 require 引入。通过 process 这个对象我们可以拿到当前脚本执行环境等一系列信息,其中就包括命令行的输入情况,这个信息,保存在 processargv 这个属性里。我们可以打印一下:
打印结果:
可以看出,argv是个数组,前两位是固定的,分别是node程序的路径和脚本存放的位置,从第三位开始才是额外输入的内容。那么实现上面的功能就很简单了,只要读取argv数组的第三位,然后输出出来就可以了。
npm社区中也有一些优秀的命令行参数解析包,比如 yargs ,tj的 commanderjs 等等
如果你想使用比较复杂的参数或者命令,建议还是用第三方包比较好,手写解析太耗精力了。
现在,你可以自由自在的写你自己的cli脚本了。
如果你希望写一个项目打完包自动推上git的cli,或者自动从git仓库里面拉取项目启动模板,那么,你需要通过node的 child_process 模块开启子进程,在子进程内调用git命令:
不仅是git命令,包括系统命令、其他cli命令都可以在这里执行。特别是系统命令,使用系统命令对文件目录进行 *** 作,效率比fs高到不知道哪里去了。
社区上也有一些不错的包,比如阮一峰老师推荐的 shelljs
如果你不那么希望你的cli用起来那么“硬核”,希望更人性化一点,比如提供一些友好的输入、提示啊,给你的输出加点颜色区分重点啊,写个简单的进度条啊等等,那么你就需要美化一下你的输出了。
除了颜色这部分,不使用第三方包实现起来非常繁琐复杂,其他的功能,都可以试试自己写。
颜色部分使用了第三方包 colors ,这里就不演示了。
其他都是由nodejs自带的 readline 模块实现的。
绘制的思路跟canvas绘制动画一样,只不过canvas是清除画布,而命令行这里是通过 readlineclearScreenDown 清除输出。
这样,一个简易的,人性化的,带点点进度条动画的命令行cli工具就写好了,你也可以发挥你的想象力,去写一些更有趣的效果出来。
毕竟我们前端,有浏览器我们可以写动画,没了浏览器我们一样可以写动画。
Nodejs 项目可以借助 Docker 技术生成容器镜像,并可以在离线环境中使用。以下是具体 *** 作步骤:
1 在离线环境中安装 Docker
在离线环境中需要手动安装 Docker。可以先在有网络的环境中下载 Docker 安装包和依赖文件,然后通过离线方式进行安装。具体 *** 作可以参考 Docker 官方文档。
2 编写 Dockerfile 文件
Dockerfile 文件是 Docker 镜像的构建脚本,通过编写 Dockerfile 可以定义容器的基础镜像、依赖环境、运行命令等信息。例如在 Nodejs 项目中可以使用以下 Dockerfile 文件来构建镜像:
```
FROM node:latest
WORKDIR /app
# 将整个项目目录拷贝到容器中
COPY /app
# 安装项目依赖
RUN npm install
# 容器运行时默认执行的命令
CMD npm start
```
3 构建 Docker 镜像
使用以下命令在离线环境中构建 Docker 镜像:
```
docker build -t your-image-name
```
其中 `your-image-name` 为自定义的镜像名称,`` 表示当前目录(Dockerfile 所在目录)。
4 导出和导入 Docker 镜像
生成 Docker 镜像后,可以通过以下命令将镜像保存为文件并导出到离线环境中:
```
docker save -o your-image-nametar your-image-name
```
其中 `-o` 参数可以指定导出的文件路径和名称。
在离线环境中可以使用以下命令将导出的镜像文件导入到 Docker 中:
```
docker load -i your-image-nametar
```
其中 `-i` 参数可以指定需要导入的镜像文件路径和名称。
5 运行容器
在离线环境中使用以下命令启动容器:
```
docker run -p your-port:your-port -d your-image-name
```
其中 `-p` 参数可以指定容器内部的端口和本地端口之间的映射关系,`-d` 参数表示容器以后台进程方式运行。
至此,Nodejs 项目的容器镜像就可以在离线环境中生成和部署了。
在Windows环境中运行NodeJS程序,将代码文件保存到NodeJS安装文件的根目录,运行文件的时候,需要打开cmd,然后输入NodeJS的安装盘名称,例如:D:,点击回车键;再输入cd以及NodeJS的安装文件路径,点击回车键;然后输入node +保存的js文件名,然后点击回车键,即可将程序运行起来。
还有其他小插件自行百度
以上就是关于把软件放在桌面上提示“请把node.dll放到exe目录下”怎么办全部的内容,包括:把软件放在桌面上提示“请把node.dll放到exe目录下”怎么办、nodejs npm安装的模块 该怎么使用、手把手教你使用nodejs编写cli(命令行)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)