我制作了一个javascript文件mytool.js
,它有一些依赖项(在package.json中)。
现在我可以在
中执行输入~/mynodes/mytool $ node mytool
但是如果我改变工作目录,我就不能再使用这个命令,因为之前它是在本地运行的。 我想要实现的是能够输入:
~$ mytool
(无论我在系统的文件系统中,无需先输入node
)。
我应该手动安装吗?
如果是,在类似unix的系统中安装个人nodejs脚本的常用位置在哪里?
或者是否有类似npm的命令来安装个人脚本系统 宽?
答案 0 :(得分:2)
当您添加" bin"你的package.json中的密钥:
"bin": {
"mytool": "mytool.js"
},
然后您将能够使用npm install -g
安装脚本,它将自动添加到应该的位置(安装到其他全局安装的cli工具的位置,应该在您的PATH中)。< / p>
您可以将此简单项目视为示例:
它是作为this answer的一个示例创建的,但它可以满足您的需求:
请注意,您不需要将脚本发布到npm以便能够安装它 - 尽管您可以这样做,或者您也可以直接从GitHub安装项目(包括私人回购) - 但您也可以安装您在本地目录或tarball中的模块:
npm install -g module-on-npm
npm install -g user/repo-on-github
npm install -g /your/local/directory
npm install -g /your/local/tarball.tgz
有关更多选项,请参阅:
另请注意,为了使您的程序能够在任何地方执行,如果您需要访问相对于代码的自己的文件,则需要使用相对于__dirname
或__filename
的路径。参见:
答案 1 :(得分:1)
#!/usr/bin/env node
)。$PATH
chmod +x /usr/local/bin/example.js
)答案 2 :(得分:1)
第一个选项:
您可以通过放置文件的第一行来全局运行文件:#!/usr/bin/env node
,将其复制到/usr/local/bin
并使其可执行:sudo chmod +x /usr/local/bin/yourfile.js
然后您可以从您想要的地方yourfile.js
第二个选项:
使本地文件可执行并创建一个可执行的bash脚本,该脚本调用本地文件并将其放入/usr/local/bin
,然后全局调用bashfile。