【问题标题】:angular-cli "ng build" doesn't produce a working project?angular-cli“ng build”不会产生一个工作项目?
【发布时间】:2016-06-01 02:56:43
【问题描述】:

(我是 Angular2 星球上的新人(从垂死的星球移民
Flex/Actionscript,所以请原谅这个幼稚的问题)

我是否犯了一个致命错误,认为在从 Angular CLi 对我的项目运行“ng build”命令后,我最终会在目录“dist”中得到一个正常运行的项目——我可以在浏览器,放在服务器上?

我最终得到一个文件夹,里面装满了正确命名的东西等。我在这里缺少一个步骤吗?

【问题讨论】:

  • 你没有误会。您应该能够将 dist 文件夹的内容转储到您选择的 Web 服务器并拥有一个工作站点。
  • 如果你想启动开发服务器以在本地运行网站,你应该使用ng serve而不是ng build
  • 我还没有查看index.html 中的所有内容,但我猜它不会简单地从文件系统正确加载,所以是的,您需要一个用于生产应用程序的服务器。跨度>
  • 您可以通过ng build -prod 制作完整的生产应用程序。对于测试,您可以运行 ng serve -prod 命令并在 localhost:4200 中打开应用程序

标签: angular angular-cli


【解决方案1】:

我是 Angular 新手,刚刚遇到了同样的问题。您可以直接从文件系统在浏览器中打开并运行 Index.html 文件,但您必须从以下位置编辑 Index.html 中基本 href 属性的路径:

<base href="/">

到:

<base href="./">

【讨论】:

  • 部署到真实服务器时我们必须保留还是删除它?可能应该引起 Angular 2 开发团队的注意
  • 会不会是这个“bug”只存在于Linux系统上?只是想解决问题。
  • 目前最新的 macOSsierra 系统。这在 localhost:4200 和实时生产服务器(Apache)中为我修复了它。这个答案结束了我漫长的搜索。谢谢!!!另外@realtebo 我完全同意这应该提交给 angular-cli 开发团队!
  • 刚刚通知 angular-cli 开发团队github.com/angular/angular-cli/issues/6006
  • 谢谢。以上在Windows上对我有用。我也尝试了ng build --base-href="./" ,之后我不需要更改它。
【解决方案2】:

我想我会从一个类似的问题中交叉发布我的答案。 Original Post.
我不认为 OP 是重复的,所以在这里;


您可以使用以下 cmd angular-cli 命令达到预期的结果:

ng build --base-href /myUrl/

ng build --bh /myUrl/ng build --prod --bh /myUrl/

这会将仅内置版本中的&lt;base href="/"&gt; 更改为&lt;base href="/myUrl/"&gt;,这非常适合我们在开发和生产之间更改环境。最好的部分是没有代码库需要使用这种方法进行更改。


总而言之,将您的 index.html 基本 href 保留为:&lt;base href="/"&gt; 然后在 angular-cli 中运行 ng build --bh ./ 以使其成为相对路径,或者将 ./ 替换为您需要的任何内容。

This 是官方的angular-cli 文档,参考用法。

【讨论】:

    【解决方案3】:

    您需要在 CLI 中运行它:

    # This will create a production version in "dist" folder
    ng build --prod
    
    # This will create a production version in a custom folder
    ng build --prod --output-path=custom
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-04
      • 2018-10-24
      • 2017-06-11
      • 1970-01-01
      相关资源
      最近更新 更多