进行生产构建时如何使用带有 WebPack 的 AngularCLI 复制选定的文件

Posted

技术标签:

【中文标题】进行生产构建时如何使用带有 WebPack 的 AngularCLI 复制选定的文件【英文标题】:How to copy selected files with AngularCLI with WebPack when doing production build 【发布时间】:2017-01-27 17:23:15 【问题描述】:

我使用带有 WebPack 的 Angular CLI 构建 Angular2 应用程序的生产版本需要将一些文件复制到 dist 文件夹,以便我可以将应用程序部署到我们的生产 (IIS) 服务器。具体来说,我需要从 src 文件夹复制到 dist 文件夹的 web.config 和 favicon.ico 文件。 web.config 文件是必需的,因此我可以为 html5 路由应用 URL 重写规则。

我假设我们需要将这些静态文件添加到 angular-cli.json 文件中,但不确定在哪里列出这些文件,以便将它们包含在生产构建中。

提前致谢。

【问题讨论】:

您可以使用资产选项吗?例如``` "project": "version": "1.0.0-beta.14", "name": "client" , "apps": [ "assets": "assets", ... ``` web.config 必须复制到 index.html 所在的根目录。这是我的理解资产被复制到资产文件夹。 我猜这个问题是相关的:github.com/angular/angular-cli/issues/1942 @尤里。感谢您的链接。似乎没有解决此问题的方法。希望它会很快得到修复 How to include custom files with angular-cli build?的可能重复 【参考方案1】:

目前(angular-cli v1.0.0-beta.26),如果您想将文件和文件夹复制到构建中,您可以在assets 配置文件中的assets 属性中列出它们。

"assets": [
  "web.config",
  "favicon.ico",
  "some_file",
  "some_folder",
  ...
]

gist 中的配置示例。

web.configfavicon.ico 文件放到项目的./src/ 文件夹中。 您应该可以通过网址 /web.config/favicon.ico 为它们提供服务。

如果您包含文件夹,则它们需要成为 url 的一部分,即/some_folder/some_subfolder/another_file.txt

Angular-CLI README

Similar answer

【讨论】:

以上是关于进行生产构建时如何使用带有 WebPack 的 AngularCLI 复制选定的文件的主要内容,如果未能解决你的问题,请参考以下文章

.json 数据显示在 webpack 服务器中,但不显示在生产版本中

带有历史模式和生产的 vue-router 的空白页面

如何通过 webpack 从生产构建中删除 cpp 文件?

NestJS Graphql webpack 生产构建错误

带有 React、TypeScript 和 Webpack 的空白页面

你如何配置 Webpack 以清除生产缩小的 React 警告?