npm link 以后执行接下来的全局命令报错

899 阅读1分钟

当我执行命令 npm link 以后,创建一个全局命令,结果运行报错,如下: image.png

npm : 无法加载文件 D:\nodejs\npm.ps1,因为在此系统上禁止运行脚本。这个是powershell权限问题导致的。具体解决办法如下:

1右键开始

image.png 打开管理员命令行操作。 2. 将powershell切换为管理员模式下

image.png 输入以下命令:Start-Process powershell -Verb runAs 执行set-ExecutionPolicy RemoteSigned 选择Y

以上操作设置完以后就可以使用test-cli了,完美!

当我配置完成以后权限以后,我在我的cli文件里面输入了 console.log(1111)以后,报错又报错了,如下:console 未定义

image.png why? why? **我查了很久,原来是一定在 cli.js前面要加上: #! /usr/bin/env node。 百度输入:#! /usr/bin/env node,发现好多人和我一样,以为在 cli 文件中输入一段 js 他就可以执行了,其实不然,如果没有:#! /usr/bin/env node,你打开你环境变量文件下的 .ps1文件,他就和加 #! /usr/bin/env node 不一样,少了一些,如果手动加上以后,运行会自动正常。why?

image.png

原因: 在写npm包的时候需要在脚本的第一行写上#!/usr/bin/env node ,用于指明该脚本文件要使用node来执行。

/usr/bin/env 用来告诉用户到path目录下去寻找node,#!/usr/bin/env node 可以让系统动态的去查找node,已解决不同机器不同用户设置不一致问题。

PS: 该命令必须放在第一行, 否者会运行报错。这个就是 console 未定义的原因呢。