Linux NodeJS 全局 NPM 包 “:没有这样的文件或目录”
Linux NodeJS global NPM package ":No such file or directory"
我正在使用 Ubuntu 14.04 并安装了 nodejs
和 npm
:
sudo apt-get install nodejs npm
然后我做了一个符号链接,使包能够使用node
解释器(而不是nodejs
):
sudo ln -s /usr/bin/nodejs /usr/local/bin/node
我安装了coffee-script
(用于测试目的)和我自己的软件包mangarack
,具有:
sudo npm -g install coffee-script mangarack
当我运行coffee
(coffee-script
的一部分)时,该包将运行良好。如果我运行mangarack
,我将得到:
: No such file or directory.
我的package.json
中有以下内容:
"bin": {
"mangarack": "./bin/mangarack"
},
该文件包含:
#!/usr/bin/env node
require('../lib/cli/index');
我查看了coffee-script
是如何做到的,似乎我的require
语句是绝对错误的,所以我将其替换为console.log
语句,以查看该文件是否真的会在node
中运行。其实不然。我错过或错误配置了哪些内容以使基于 Linux 的计算机能够运行此软件包?
完整的源代码参考:
- NPM: https://www.npmjs.org/package/mangarack
- git: https://github.com/Deathspike/mangarack.js
问题是文件bin/mangarack
使用回车符,这会导致 linux 环境中出错。 看看我得到了什么:
$ mangarack --help
env: node'r: No such file or directory
$ head -n 1 `which mangarack` | hexdump
0000000 23 21 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 6e
0000010 6f 64 65 0d 0a
0000015
请注意字符'r
(0d
十六进制模式下)之后的node
。 您应该将其删除。
解决方案:使用 $ git config core.autocrlf
设置项目,然后提交更改。 请参阅 https://help.github.com/articles/dealing-with-line-endings/
修复后的预期结果应为:
$ head -n 1 `which mangarack` | hexdump
0000000 23 21 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 6e
0000010 6f 64 65 0a
0000015
相关文章:
- 使用optimit.js文件中的npm安装optimize
- github的npm包,缺少文件
- "npm运行构建“;模块解析错误”;您可能需要一个适当的加载程序来处理此文件类型&”;
- 全局安装的NodeJS npm模块不执行节点的主/bin JavaScript文件
- 使用NPM管理文件相关性
- 呵呵!与 npm 找不到文件有关
- 使用 NPM 重命名文件
- Linux NodeJS 全局 NPM 包 “:没有这样的文件或目录”
- Webpack 不会在 npm 运行时生成捆绑文件
- 使用 npm 作为构建工具连接文件
- 在用于NPM的Lockdown.js中,我得到一个空文件
- Meteor:使用客户端上的FileReader和服务器上的Npm.request(“fs”)上传图像文件
- 如何使用npm为节点项目生成文件
- npm发布会忽略nodemodule中的文件
- npm将所有依赖项和子依赖项放在同一个文件夹中
- Npm安装模块提供了大量的文件
- Node-npm为什么所有模块都安装在根Node_modules文件夹中
- 如何在不指定完整node_modules路径的情况下从npm包中要求一个替代的js文件
- Gulp:npm install-Gulp--save-dev希望在node_modules文件夹中只看到一个gull文
- 我是否需要在lib或vendor文件夹中保留一份js库的副本,尽管已经使用npm安装了