NPM脚本(在package.json中)不使用node_modules / .bin目录

问题描述 投票:-1回答:1

我在package.json文件中有一些脚本:

"scripts": {
    "build": "webpack --config webpack.config.prod.js --progress",
    "dev": "webpack-dev-server --hot --config webpack.config.dev.js",
    "test": "echo \"Error: no test specified\" && exit 1"
    }

我在package.json文件中安装了devDependencies(在WebStorm中运行package.json),然后npm成功创建了./node_modules/.bin/目录,其中包含所需的二进制文件。

问题

问题是,当我运行npm run dev启动Webpack服务器时:

sh:webpack-dev-server:找不到命令

第一个解决方案

我可以通过提供.bin文件夹的确切路径来解决此问题,如下所示:

"dev": "./node_modules/.bin/webpack-dev-server --hot --config webpack.config.dev.js"

第二解决方案

我通过将.bin添加到全局环境PATH中找到了另一个解决方案:

export PATH="$PATH:./node_modules/.bin"

问题

我不能使用第一个解决方案,因为我不是在这个项目中独自工作,他们也没有问题。此外,我读到,这应该是单独进行的(npm)。

第二个解决方案:我不想将项目包(二进制文件)添加到我的全局PATH环境中。

正常情况下,npm可能会自动将.bin文件夹添加到环境路径。

我想了解什么是座谈(为什么座谈会自动对其他人而不对我有效?)

感谢您的阅读和帮助,我想我并不孤单:)。

json npm webstorm package.json npm-scripts
1个回答
1
投票

最终解决方案

我到*。/ node_modules / .bin的路径中有一个“:”,但是“:”用作PATH环境的分隔符(用于分隔到二进制目录的不同路径)。因此,shell从未到达./ node_modules / .bin目录,因为路径是这样的:

/ Path / to / the / Project_19:20 / node_modules / .bin

切勿在文件/文件夹名称中使用“ /”!

“:”引起文件夹名称斜杠的原因。

© www.soinside.com 2019 - 2024. All rights reserved.