gpt4 book ai didi

javascript - Node.js 模块中的权限问题

转载 作者:行者123 更新时间:2023-12-01 03:39:06 26 4
gpt4 key购买 nike

我构建了一个名为 emeraldfw 的 npm 模块并发布了它。我的 package.json 文件是

{
"name": "emeraldfw",
"version": "0.6.0",
"bin": "./emeraldfw.js",
"description": "Emerald Framework is a language-agnostig web development framework, designed to make developer's lives easier and fun while coding.",
"main": "emeraldfw.js",
"directories": {
"example": "examples",
"test": "test"
},
"scripts": {
"test": "mocha"
},
"repository": {
"type": "git",
"url": "git+https://github.com/EdDeAlmeidaJr/emeraldfw.git"
},
"keywords": [
"web",
"development",
"framework",
"language",
"agnostic",
"react"
],
"author": "Ed de Almeida",
"license": "MIT",
"bugs": {
"url": "https://github.com/EdDeAlmeidaJr/emeraldfw/issues"
},
"homepage": "https://github.com/EdDeAlmeidaJr/emeraldfw#readme",
"devDependencies": {
"jshint": "^2.9.4",
"mocha": "^3.3.0"
},
"dependencies": {
"jsonfile": "^3.0.0",
"react": "^15.5.4",
"vorpal": "^1.12.0"
}
}

正如您所见,我声明了一个 "bin": "./emeraldfw.js" 二进制文件,它对应于应用程序本身。 package.json 文档表示这将在 node.js bin/目录中创建一个指向应用程序可执行文件的链接。这工作正常,但是当我全局安装它(npm install emeraldfw -g)然后从命令行运行它时,我收到一条错误消息 enter image description here

所有其他 Node 模块都工作正常,我的应用程序正在通过所有测试,当我直接在开发目录中运行它(使用 node emeraldfw.js)时,它工作得非常好。

我不是node.js专家,在与这个错误斗争了两天之后,我在这里寻求帮助。

有什么想法吗?

编辑:

我检查了 Node 二进制文件 (emeraldfw.js) 的权限,它属于 edvaldo:edvaldo、我的用户和组。并且设置了可执行权限。通过这些设置,我在自己的区域内应该不会出现权限问题,您不觉得吗?

最佳答案

好吧,这里是shebang问题。

在创建 npm 模块之前,您需要阅读其文档的每一行。

正如它所说的here您需要使用 shebang 让您的操作系统知道它应该与 Node 一起运行,而不是操作系统自己的脚本执行主机。

Please make sure that your file(s) referenced in bin starts with #!/usr/bin/env node, otherwise the scripts are started without the node executable!

因此,通过在 npm 模块上使用 shebang,您可以告诉操作系统创建特定于平台的可执行文件,使其使用 Node 来运行脚本。例如,Windows 上的 .cmd 文件。

关于javascript - Node.js 模块中的权限问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44014722/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com