#! /usr/bin/env node 命令与 npm link 建立项目间软连接(一)

简介: #! /usr/bin/env node 命令与 npm link 建立项目间软连接(一)

#! /usr/bin/env node


js 代码…


这条指令通常出现在Node.js脚本文件的开头,它的作用是用来指定该脚本文件使用 /usr/bin/env 来寻找并执行 node 解释器。这里的 node 即Node.js的执行环境。


#!/usr/bin/env node 是Unix/Linux系统(包括Mac OS X)下的一个Shebang(#!)语法,用于指明脚本的解释器。当系统遇到带有Shebang的脚本并尝试执行时,会根据Shebang行指定的路径去找对应的解释器来执行脚本内容。


具体来说,/usr/bin/env 是一个实用工具,它可以搜索环境变量PATH下的指定程序。在这里,它会搜索PATH路径下是否存在名为 node 的可执行文件(即Node.js解释器)。这样做的好处是可以灵活适应不同的系统环境,因为在不同系统上,Node.js的安装位置可能会有所不同,但通常都会将其添加到PATH环境变量中。


因此,当你在命令行环境下运行这样一个脚本时,系统会调用Node.js解释器来执行该脚本的JavaScript代码。


#!/usr/bin/env node 是一个 Unix shell 脚本(Shebang)行,通常出现在 Node.js 应用程序的可执行文件顶部。它的作用是告诉操作系统(特别是类 Unix 系统,如 Linux、macOS 等)使用 env 工具查找并执行名为 node 的程序来解释接下来的脚本内容。


env 工具可以搜索系统 PATH 环境变量中预设的路径,找到并执行 node,也就是 Node.js 解释器。这样,当你在终端中直接运行这个脚本文件时,操作系统就会使用 Node.js 来执行这个脚本。


例如,如果你有一个名为 myapp.js 的 Node.js 应用,内容开头是:


```bash

#!/usr/bin/env node


console.log(‘Hello, World!’);

```


给这个文件添加执行权限后(chmod +x myapp.js),就可以直接在终端中运行:


```bash

./myapp.js

```


此时,系统会找到并使用 Node.js 解释器来运行这个脚本,并输出 “Hello, World!”


python一样

#!/usr/bin/python3 :指定用什么解释器运行脚本以及解释器所在的位置,如果解释器没有装在/usr/bin/目录,改成其所在目录就行了,或者更通用的方法是:

#!/usr/bin/env python3。


npm link


将项目链接到全局,这样可以在终端任意目录去执行命令


npm link 是 Node.js 包管理器 (npm) 提供的一个命令,用于创建本地开发环境中的软链接,以便在一个本地项目中使用另一个本地项目的包作为依赖。这个命令主要用于开发和测试自定义模块时,使得在不同项目之间共享和实时更新代码变得方便。


以下是 npm link 常见的使用场景与步骤:


发布本地模块:

在你的自定义模块项目(例如:my-module)的根目录下执行 npm link。这会在全局范围内的 node_modules 目录下创建一个符号链接指向当前项目。

在主应用中使用本地模块:

进入到你想使用该本地模块的项目目录中。

执行 npm link my-module,这样会在当前项目中创建一个符号链接,指向之前全局链接的 my-module。

这样一来,当你修改并保存 my-module 中的代码时,这些更改会立即反映到通过 npm link 关联的所有项目中,无需重复安装。


具体步骤简述如下:

  1. 在模块项目中:
cd path/to/my-module
npm link
• 1
• 2

2.在要引用模块的主项目中:

cd path/to/main-project
npm link my-module

现在,main-project 就能够像使用普通npm包一样使用 my-module 的最新代码了。

目录
相关文章
|
12月前
|
Kubernetes API 网络安全
当node节点kubectl 命令无法连接到 Kubernetes API 服务器
当Node节点上的 `kubectl`无法连接到Kubernetes API服务器时,可以通过以上步骤逐步排查和解决问题。首先确保网络连接正常,验证 `kubeconfig`文件配置正确,检查API服务器和Node节点的状态,最后排除防火墙或网络策略的干扰,并通过重启服务恢复正常连接。通过这些措施,可以有效解决与Kubernetes API服务器通信的常见问题,从而保障集群的正常运行。
956 17
|
11月前
|
JavaScript 安全 前端开发
关于Node.js,一定要学这个10+万Star项目 !!
一篇关于Node.js的宝藏项目——Node.js Best Practices。该项目在GitHub上已有102k Star,汇集了100+条最佳实践,涵盖架构、安全、性能等多方面。每条实践不仅有简明说明和详细解释,还附带代码示例及资源链接。文中通过三个实战案例(利用CPU多核、避免阻塞事件循环、使用中间件处理错误)展示了其实际应用价值,并推荐了几条对前端转Node.js开发者特别有用的最佳实践。强烈建议每位Node.js开发者学习此项目,理解“怎么做”与“为什么要这么做”,以提升开发能力。
398 3
|
JavaScript
node环境之Error: Cannot find module ‘chalk’ 报错无法解决的问题—-网上说让你npm install chalk 基本是没有用的-优雅草央千澈解决方案
node环境之Error: Cannot find module ‘chalk’ 报错无法解决的问题—-网上说让你npm install chalk 基本是没有用的-优雅草央千澈解决方案
1050 13
node环境之Error: Cannot find module ‘chalk’ 报错无法解决的问题—-网上说让你npm install chalk 基本是没有用的-优雅草央千澈解决方案
node环境之当我们遇到需要付费的依赖库@fortawesome/fontawesome-pro导致npm install无法进行怎么办-fontawesome-pro依赖库
node环境之当我们遇到需要付费的依赖库@fortawesome/fontawesome-pro导致npm install无法进行怎么办-fontawesome-pro依赖库
427 3
node环境之当我们遇到需要付费的依赖库@fortawesome/fontawesome-pro导致npm install无法进行怎么办-fontawesome-pro依赖库
|
存储 资源调度 JavaScript
npm、cnpm 和 pnpm 是三种常用的 Node.js 包管理工具
npm、cnpm 和 pnpm 是三种常用的 Node.js 包管理工具。npm 是官方默认的包管理器,提供依赖管理、安装和更新等功能;cnpm 是由阿里巴巴开发的 npm 镜像,专为中国大陆用户优化,解决下载速度慢的问题;pnpm 通过硬链接技术提高安装速度并节省磁盘空间,特别适合磁盘资源紧张的环境。三者命令类似,但各有特色,开发者可根据需求选择合适的工具。
1602 5
|
JavaScript 应用服务中间件 Linux
宝塔面板部署Vue项目、服务端Node___配置域名
本文介绍了如何使用宝塔面板在阿里云服务器上部署Vue项目和Node服务端项目,并配置域名。文章详细解释了安装宝塔面板、上传项目文件、使用pm2启动Node项目、Vue项目打包上传、以及通过Nginx配置域名和反向代理的步骤。
5165 1
宝塔面板部署Vue项目、服务端Node___配置域名
|
SQL JavaScript 关系型数据库
node博客小项目:接口开发、连接mysql数据库
【10月更文挑战第14天】node博客小项目:接口开发、连接mysql数据库
|
移动开发 小程序 数据可视化
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
基于npm CLI脚手架的uniapp项目创建、运行与打包全攻略(微信小程序、H5、APP全覆盖)
3575 3
|
JavaScript
使用node.js控制CMD命令——修改本机IP地址
使用node.js控制CMD命令——修改本机IP地址
|
JavaScript Linux 网络安全
VS Code远程调试Nodejs项目
VS Code远程调试Nodejs项目