我克隆了使用节点http-server
的{{3}},并且使用以下配置完美地工作。
命令:npm start(来自项目的根目录)
在package.json
文件中进行配置:
"start": "http-server -a localhost -p 8000 -c-1",
Link to file
但是我无法直接启动此服务器。例如:从项目的根目录,这些命令都不起作用:
> angular-seed npm http-server
> angular-seed node http-server
> angular-seed http-server
这个(http-server)不应该在这里可用(root,从哪里安装)?有人可以解释一下它是如何工作的,以及我如何直接从项目的根目录中使用它。
我确信如果我在全球范围内安装它会工作正常,但我对此并不感兴趣。
答案 0 :(得分:43)
当您在项目的根目录中运行npm install
时,它会将所有npm依赖项安装到项目的node_modules
目录中。
如果您查看项目的node_modules
目录,您应该会看到一个名为http-server
的目录,其中包含http-server
包,以及.bin
} folder,它保存已安装的依赖项中的可执行二进制文件。 .bin
目录应该包含http-server
二进制文件(或指向它的链接)。
因此,在您的情况下,您应该可以通过从项目的根目录(而不是http-server
)运行以下内容来启动npm start
:
./node_modules/.bin/http-server -a localhost -p 8000 -c-1
这与运行npm start
具有相同的效果。
如果您正在运行Bash shell,可以通过将./node_modules/.bin
文件夹添加到$PATH
环境变量中来简化此操作:
export PATH=./node_modules/.bin:$PATH
这会将此文件夹放在您的路径上,您应该可以直接运行
http-server -a localhost -p 8000 -c-1
答案 1 :(得分:0)
要在本地启动服务器,请将以下代码粘贴到 package.json 中,然后运行 npm start 在命令行中。
"scripts": {
"start": "http-server -c-1 -p 8081"
},