Angular 7如何为dist

时间:2018-12-07 10:00:57

标签: angular angular7

当我通过ng build命令在dist文件夹中构建项目时,我同时拥有所有其他资源的js文件,但我想将所有图像和字体移动到{ {1}}。有人可以帮我吗?

enter image description here

更新: angular.json assets

在我拥有的组件的scss中:

"assets": [ "src/favicon.ico", "src/assets" ],

但是结果我进入了dist文件夹的下一个文件:

background-image: url('assets/img/no-notifications.svg');

目标保持图像路径与在scss文件中指定的图像路径相同:  no-notifications.7e08682a570485d1c108.svg

4 个答案:

答案 0 :(得分:2)

如果您还不知道,则在角度cli配置中添加了一个新选项(自v7.2.1起),以将css资源复制到另一个文件夹中(相对于输出路径)。

"outputPath": "wwwroot",
"resourcesOutputPath": "images"

https://angular.io/cli/build

答案 1 :(得分:1)

尝试

img内创建assets文件夹

并使用./assets/img/your_image

之类的路径

它将起作用。

答案 2 :(得分:1)

给定的解决方案"resourcesOutputPath": "images"适用于图像。但是不幸的是,如果我们需要对其他资源(例如*.js*.ttf文件等)执行相同的操作,它将无法正常工作。

这是我对*.js文件的处理方式:在package.json节点下方的文件scripts中,我添加了一个名为postbuild的脚本,该脚本将: >

  1. 移动文件到专用文件夹(在我的示例中为resources
  2. 搜索<script src="*.js"></script>中的index.html并将其替换为<script src="resources/*.js"></script>。搜索和替换是通过sed命令行完成的(请注意,在Linux或MacOS上,sed命令行有一些区别)。

这是我的package.json文件的最终外观:

{
  "name": "my-project",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve --proxy-config proxy.conf.json",
    "build": "ng build",
    "postbuild": "mv ./dist/my-project/*.js ./dist/my-project/*.js.map ./dist/my-project/resources; sed -i -e 's/src=\"/src=\"resources\\//g' dist/my-project/index.html",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  }
}

答案 3 :(得分:0)

默认情况下,使用“ ng build”命令“ assets”及其“子文件夹”将自动复制到“ dist”文件夹。如果要在同一根目录下创建另一个文件夹,请说“资源”。

在angular.json中,存在“资产”配置,我们可以在其中定义“ src /资源”。

angular.json

"assets": ["src/resources"],