节点命令行工具不在vagrant上编译

我在Windows 10上使用Vagrant。使用npm install (或npm install --no-bin-links ,因为我在Windows上的Vagrant)安装所有的依赖关系后,./ ./node_modules/.bin是空的。 我期望find一些命令行工具。

在我的情况下,这是svg2png-many是缺less的。

我也尝试用npm rebuild svg2png-many ,但是这并没有创build丢失的文件。

注:我没有得到任何错误运行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_modules/.bin可用,因为它们是模块二进制文件的符号链接。 你可以在npm文档中看到:

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

如果你运行npm install你应该得到node_modules文件夹中下载的package.json文件中的所有模块。 以下是输出示例(在没有–no-bin-links标志的情况下安装之后):

 $ 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 

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

我运行该命令并获取svg2png-many下载到./node_modules/svg2png-many ,二进制文件存在于./node_modules/svg2png-many/bin/index.js 。 您可以直接运行该文件(而不是尝试使用未在./node_modules/.bin创build的符号链接)

重要说明:在Windows上使用Vagrant时,为了使npm install正常工作,您必须

  • 或者以pipe理员身份运行开始vagrant up的控制台
  • 或者使用--no-bin-links选项

首先显然是这里所需的解决scheme。