Angular 8在npm上运行dist文件夹运行start-dev



我正在尝试直接运行dist文件夹,而不是执行ng serve。为此,我用package.json编写了一个脚本。

start-dev: ng build && http-server dist

问题是,每当我保存任何文件时,我都希望它自动运行。此外,它将再次构建整个npm,这是一个非常缓慢的过程。关于我该怎么做,还有其他方法吗?而且做得更快?

运行ng build时可以使用--watch标志。因此,当您更改文件时,命令将为ng build --watch以自动重建。

要自动重新启动http-server dist/<app_name>命令,可以使用nodemon

对于nodemon,命令将是nodemon --watch dist --exec 'http-server dist/<app_name>'

您可以像这样同时运行这两个命令ng build --watch & nodemon --watch dist --exec 'http-server dist/<app_name>'

以上命令将协同工作。Angular将重建dist文件夹,当dist文件夹发生更改时,nodemon将重新启动服务器。

如Chris的回答所示,您可以在使用ng build --watch时自动重建应用程序。

如果你只想提供最新版本的应用程序,你可以使用-c-1选项(doc(从http-server禁用缓存(默认打开(

在linux上(使用单个&并行运行脚本(

"start-dev": "ng build --watch & http-server -c-1 dist", 

在窗口上(注意start命令(:

"start-dev": "start ng build --watch && start http-server -c-1 dist", 

票据

  • 在像上面那样停用缓存之前,您的浏览器可能已经缓存了dist文件,所以手动清除缓存一次。之后你不需要这么做

  • 这个解决方案不会重新加载页面,你必须自己做

  • http-server不支持回退,如果您使用angular的默认策略,这可能是一个问题。因此,如果你在http://localhost:8080/module1/path1上,重新加载页面,你会得到一个404。您需要重新加载http://localhost:8080并从应用程序路由器导航到正确的url

  • 根据您的angular.json,输出文件夹可能是distdist/projectNamedist/projectName/browser,或者您指示的

最好安装lite服务器。用于安装lite服务器:-

npm install --global lite-server

然后在cmd或终端中打开dist文件夹

lite-server

资源:-https://www.npmjs.com/package/lite-server

最新更新