#! /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!"。

npm link

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

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

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

  1. 发布本地模块
    • 在你的自定义模块项目(例如:my-module)的根目录下执行 npm link。这会在全局范围内的 node_modules 目录下创建一个符号链接指向当前项目。
  2. 在主应用中使用本地模块
    • 进入到你想使用该本地模块的项目目录中。
    • 执行 npm link my-module,这样会在当前项目中创建一个符号链接,指向之前全局链接的 my-module

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

具体步骤简述如下:

  1. 在模块项目中:

    复制代码
    cd path/to/my-module
    npm link
  2. 在要引用模块的主项目中:

    复制代码
    cd path/to/main-project
    npm link my-module

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

相关推荐
晓131317 小时前
第七章 【C语言篇:文件】 文件全面解析
linux·c语言·开发语言
唐装鼠17 小时前
Linux 下 malloc 内存分配机制详解
linux·malloc
予枫的编程笔记17 小时前
【Linux入门篇】Linux运维必学:Vim核心操作详解,告别编辑器依赖
linux·人工智能·linux运维·vim操作教程·程序员工具·编辑器技巧·新手学vim
17(无规则自律)18 小时前
深入浅出 Linux 内核模块,写一个内核版的 Hello World
linux·arm开发·嵌入式硬件
中二病码农不会遇见C++学姐18 小时前
Linux下的.run文件
linux
予枫的编程笔记18 小时前
【Linux入门篇】摆脱权限混乱困境:Linux用户组管理+sudo提权,一步到位
linux·linux运维·后端开发·linux用户管理·linux权限配置·chmod命令·sudo配置
一个人旅程~18 小时前
Dell n4020双系统分区步骤和linux优化操作
linux·windows·电脑
忆~遂愿18 小时前
CANN metadef 深度解析:动态形状元数据管理、图编译器接口规范与序列化执行机制
大数据·linux
予枫的编程笔记18 小时前
【Linux入门篇】Linux文件操作不用记满屏命令,掌握touch/cp/mv核心用法就够了
linux·tar·linux命令·tail·cat·linux文件管理·linux新手教程
learning-striving19 小时前
kali连不上网解决方法
linux·开发语言·网络·php·kali