1-4 NodeJS的安装之配置可执行脚本

NodeJS配置可执行脚本

首先,了解一下,模块安装本地和安装全局的区别。

全局:
1.所有的项目都可以使用这个模块
劣势:(1)容易导致版本冲突
(2)不能基于commonJS模块规范,调取使用
就是不能再js中通过require调取使用

本地:
1.只能当前项目使用这个模块
劣势:(1)不能直接使用命令操作。比如命令行使用
推荐安装本地使用。

说到这里,你一定很诧异,为啥安装在全局可以直接执行命令》
先记住一个命令

npm root   ||  npm root -g   
查看本地或者全局环境下,npm的安装目录

在这里插入图片描述
这是我的安装路径。被我安装在全局了。然后根据npm的路径打开文件夹。可以看到如下图:
在这里插入图片描述
可以看到npm,目录下有一个vue.cmd的文件,这是我安装来测试的。其实有这个文件,就可以通过命令行使用 vue命令。如果你想也想创建一个命令,然后通过命令行触发,只要在这个目录下,创建一个cmd的文件,将内容编辑好即可。
也就是说,安装在全局目录下的模块,大部分都会生成一个.cmd的文件,只要有这个文件,那么文件名称就是一个可执行命令。例如:vue.cmd 那么 vue 就是命令
至于如何自己创建命令,复制如下代码:

@IF EXIST "%~dp0\node.exe" (
“%~dp0\node.exe” "%~dp0\node_modules\lol\index.js" %*
) ELSE (
  @SETLOCAL
  @SET PATHEXT=%PATHEXT:;.JS=;%
  node  "%~dp0\node_modules\lol\index.js" %*
)

自己创建一下目录,玩下即可。

那么看到了。我们的模块安装在全局才能用命令行,执行命令,在本地安装怎么实现,看下面实例:

以下是上篇文章的package.json文件,也就是我们的配置清单。
在这里面可以看到,有一个scripts 的一个对象参数,可执行脚本

{
  "name": "c_web",		//模块名称
  "version": "1.0.0",		//版本号
  "description": "",		//模块描述
  "main": "index.js",		//模块主入口文件
  "scripts": {					//可执行脚本。以下为示例:
    "dev": "webpack --mode development",			//在开发环境打包
    "build": "webpack --mode production"				//在生产环境打包
  },
  
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {				//生产依赖
    "jquery": "^3.4.1"
  },
    "devDependencies":{		//开发依赖
	  
  }
}

它的实现原理就是,把模块安装在本地,如果是支持命令操作的(会在node_modules的bin中生成xxx.cmd文件)只不过这个文件无法在全局执行。这里注意,这里的node_modules指的是当前目录下的。

“dev”: “webpack --mode development”
命令的属性名字,自己定义即可,属性值是需要执行的命令脚本。
可以看到我已经配置了两个命令。

“scripts”: { //可执行脚本。以下为示例:
“dev”: “webpack --mode development”, //在开发环境打包
“build”: “webpack --mode production” //在生产环境打包
},
这里通过scripts执行我们定义的命令,例如:

npm run dev
npm run build

这样的命令实际进行了以下步骤:
(1)首先找到scripts中查找
(2)找到并把后面对应的值(执行脚本)执行
(3)执行脚本的时候,回到本地node_modules的bin文件下查找,没有的话,在向npm安装的全局目录下查找。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

画不完的饼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值