Node.js 节点命令行工具未在vagrant上编译

Node.js 节点命令行工具未在vagrant上编译,node.js,npm,vagrant,Node.js,Npm,Vagrant,我正在Windows 10上使用Vagrant。 使用npm install安装所有依赖项后(或者npm install——没有bin链接,因为我在Windows上处于Vagrant中),/node\u modules/.bin为空。我希望能找到一些命令行工具 在我的例子中,缺少的是svg2png many 我还尝试使用npm rebuild svg2png进行重建,但这并没有创建丢失的文件 注意:我在运行npm install时没有收到任何错误,只是文件不在那里: ./svg2png.sh:第

我正在Windows 10上使用Vagrant。 使用
npm install
安装所有依赖项后(或者
npm install——没有bin链接,因为我在Windows上处于Vagrant中),
/node\u modules/.bin
为空。我希望能找到一些命令行工具

在我的例子中,缺少的是
svg2png many

我还尝试使用
npm rebuild svg2png进行重建,但这并没有创建丢失的文件

注意:我在运行
npm install
时没有收到任何错误,只是文件不在那里:

./svg2png.sh:第8行:./node_modules/.bin/svg2png many:没有这样的文件或目录

这个在那个文件里

for t in "${themes[@]}"
do
  echo "dist/img/${t}/"
  ./node_modules/.bin/svg2png-many -i "dist/img/${t}/" "dist/img/${t}/"
done

下一步我应该尝试什么?

如果您指定的是
--no bin links
,则二进制文件在
/node\u modules/.bin
中不可用,因为它们是指向模块二进制文件的符号链接。您可以在中看到:

--no bin links参数将阻止npm创建符号链接 对于包中可能包含的任何二进制文件

如果运行
npm install
,则应在
node\u modules
文件夹中下载
package.json
文件中的所有模块。下面是一个输出示例(安装后不带--no-bin-links标志):

如果需要安装缺少的模块,可以在运行
npm install
之前删除所有下载的依赖项,或者只需通过运行
npm install svg2png many
来安装依赖项

我运行命令并在
/node\u modules/svg2png many
中下载
svg2png many
,二进制文件位于
/node\u modules/svg2png many/bin/index.js
中。您可以直接运行该文件(而不是尝试使用未在
/node\u modules/.bin
中创建的符号链接)

重要提示:在Windows上使用Vagrant时,要使
npm安装
正常工作,您必须

  • 以管理员身份运行启动的控制台
    vagrant up
  • 或者使用选项
    --无bin链接

第一个显然是这里所需的解决方案。

但是您在运行命令时使用了
--没有bin链接
,因此链接不可用created@greuze如果运行npm安装
,也不会创建cli文件。你是说
/node\u modules/.bin
中的文件只是符号链接吗?是的,确切地说,
/node\u modules/.bin
中有指向模块二进制文件的符号链接。但是
npm安装
应该下载
/node\u modules/
@greuze中的模块。您使用的是virtualbox共享文件夹吗?如果是这样,那么更新来宾中的virtualbox来宾添加。你是对的,
--no bin links
选项是罪魁祸首。但这并不是主要原因。根据
vagrant up
必须以管理员身份运行,以便
npm安装
能够创建符号链接。
$ ls -l node_modules/.bin
total 0
lrwxrwxrwx 1 ils ils 36 may 17 17:01 conventional-changelog -> ../conventional-changelog-cli/cli.js
lrwxrwxrwx 1 ils ils 39 may 17 17:01 conventional-changelog-writer -> ../conventional-changelog-writer/cli.js
lrwxrwxrwx 1 ils ils 37 may 17 17:01 conventional-commits-parser -> ../conventional-commits-parser/cli.js
lrwxrwxrwx 1 ils ils 39 may 17 17:01 conventional-recommended-bump -> ../conventional-recommended-bump/cli.js
lrwxrwxrwx 1 ils ils 34 may 17 17:01 cross-env -> ../cross-env/dist/bin/cross-env.js
lrwxrwxrwx 1 ils ils 24 may 17 17:01 dateformat -> ../dateformat/bin/cli.js
lrwxrwxrwx 1 ils ils 22 may 17 17:01 get-pkg-repo -> ../get-pkg-repo/cli.js
lrwxrwxrwx 1 ils ils 25 may 17 17:01 git-raw-commits -> ../git-raw-commits/cli.js
lrwxrwxrwx 1 ils ils 25 may 17 17:01 git-semver-tags -> ../git-semver-tags/cli.js
lrwxrwxrwx 1 ils ils 28 may 17 17:01 handlebars -> ../handlebars/bin/handlebars
lrwxrwxrwx 1 ils ils 22 may 17 17:01 JSONStream -> ../JSONStream/index.js
lrwxrwxrwx 1 ils ils 21 may 17 17:01 lerna -> ../lerna/bin/lerna.js
lrwxrwxrwx 1 ils ils 20 may 17 17:00 mkdirp -> ../mkdirp/bin/cmd.js
lrwxrwxrwx 1 ils ils 39 may 17 17:01 npm-run-all -> ../npm-run-all/bin/npm-run-all/index.js
lrwxrwxrwx 1 ils ils 16 may 17 17:01 rimraf -> ../rimraf/bin.js
lrwxrwxrwx 1 ils ils 33 may 17 17:01 run-p -> ../npm-run-all/bin/run-p/index.js
lrwxrwxrwx 1 ils ils 33 may 17 17:01 run-s -> ../npm-run-all/bin/run-s/index.js
lrwxrwxrwx 1 ils ils 20 may 17 17:00 semver -> ../semver/bin/semver
lrwxrwxrwx 1 ils ils 51 may 17 17:01 sl-log-transformer -> ../strong-log-transformer/bin/sl-log-transformer.js
lrwxrwxrwx 1 ils ils 22 may 17 17:00 strip-indent -> ../strip-indent/cli.js
lrwxrwxrwx 1 ils ils 25 may 17 17:01 uglifyjs -> ../uglify-js/bin/uglifyjs
lrwxrwxrwx 1 ils ils 18 may 17 17:01 which -> ../which/bin/which