Angular 7-如何分离不同目录中的文件

Angular 7-如何分离不同目录中的文件,angular,angular-cli,angular7,Angular,Angular Cli,Angular7,我正在将Angular 7应用程序配置为生产环境,并尝试在不同的目录中组织文件 angular.json "architect": { "build": { "builder": "@angular-devkit/build-angular:browser", "options": { "outputPath":

我正在将Angular 7应用程序配置为生产环境,并尝试在不同的目录中组织文件

angular.json

            "architect": {
                "build": {
                    "builder": "@angular-devkit/build-angular:browser",
                    "options": {
                        "outputPath": "dist/samsara-ui",
                        "index": "src/index.html",
                        "main": "src/js/main.ts",
                        "polyfills": "src/js/polyfills.ts",
                        "tsConfig": "src/tsconfig.app.json",
                        "assets": [
                            "src/favicon.ico",
                            "src/assets"
                        ],
                        "styles": [
                            "src/styles.css",
                            "src/samsara-theme.scss"
                        ],
                        "scripts": []
                    },
当前我的目录如下所示:

├── dist
|   ├── <appname>
|   |   ├── assets
|   |   |   ├── icons
|   |   |   ├── images

|   |   |   index.html
|   |   |   *.js (bundled files: runtime.js, polyfills.js, vendor.js, main.js)
|   |   |   *.map
|   |   |   style.css
|   |   |   *.woff, *.woff2, *.tff, *.eot
├── dist
|   ├── <appname>
|   |   ├── assets
|   |   |   ├── icons
|   |   |   ├── images

|   |   |   index.html
|   |   |   style.css

|   |   ├── libs
|   |   |   |   *.js
|   |   |   |   *.map

|   |   ├── fonts
|   |   |   *.woff, *.woff2, *.tff, *.eot
├── 距离
|   ├── 
|   |   ├── 资产
|   |   |   ├── 图标
|   |   |   ├── 图像
|| | index.html
|| |*.js(捆绑文件:runtime.js、polyfills.js、vendor.js、main.js)
|| |*.地图
|| | style.css
|| |*.woff、*.woff2、*.tff、*.eot
通过编译,捆绑的javascript文件在根目录上生成,字体文件也复制到根目录

我想:

  • 为绑定的js文件指定不同的目录
  • 为字体文件指定不同的目录。 (如果它必须是js文件的同一个目录,没问题,但很高兴有所不同)
  • 结构如下所示:

    ├── dist
    |   ├── <appname>
    |   |   ├── assets
    |   |   |   ├── icons
    |   |   |   ├── images
    
    |   |   |   index.html
    |   |   |   *.js (bundled files: runtime.js, polyfills.js, vendor.js, main.js)
    |   |   |   *.map
    |   |   |   style.css
    |   |   |   *.woff, *.woff2, *.tff, *.eot
    
    ├── dist
    |   ├── <appname>
    |   |   ├── assets
    |   |   |   ├── icons
    |   |   |   ├── images
    
    |   |   |   index.html
    |   |   |   style.css
    
    |   |   ├── libs
    |   |   |   |   *.js
    |   |   |   |   *.map
    
    |   |   ├── fonts
    |   |   |   *.woff, *.woff2, *.tff, *.eot
    
    ├── 距离
    |   ├── 
    |   |   ├── 资产
    |   |   |   ├── 图标
    |   |   |   ├── 图像
    || | index.html
    || | style.css
    |   |   ├── 自由基
    || | |*.js
    || | |*.地图
    |   |   ├── 字体
    || |*.woff、*.woff2、*.tff、*.eot
    
    有可能做到这一点吗?如果是,怎么做

    非常感谢你的帮助


    最好的问候

    根据文档,您只需更新angular.json文件即可更改资产目录

    比如:

    "assets": [{ "glob": "sitemap.xml", "input": "src/assets/", "output": "/" }],
    

    要更改bundle js path,您需要在构建时指定新路径,即
    ng build--prod--outputPath=new_path
    --documentations-否则您只需在index.html中更新js path,它不受正式支持,但您可以使用

    --baseHref=baseHref      Base url for the application being built.
    
    --deployUrl=deployUrl    URL where files will be deployed.
    
    --outputPath=outputPath  path for the new output directory
    
    通过组合它们,您可以将js/map/index.html文件移动到特定位置,并更新index.html中的baseHref和url

    更多关于

    是的

    您只需更改angular.json中的条目

    "assets":   [
                  "src/assets/icons",
                  "src/assets/images",
                  "src/fonts"
                ],
    "styles":   [
                  "src/styles.css"
                ]
    
    "scripts":  [
                  "src/libs"
                ]
    

    我的问题不在于资产。资产目录中的所有内容都将被复制。(实际上我能够修复复制的冗余字体。它们不应该是资产的一部分。)我的问题实际上是生成的文件。它们总是复制到根目录好的,因此主要需要指定捆绑文件(polyfills、main等)的位置。对吗?没错,如果我没有表达正确,我很抱歉谢谢你。此配置只是指定构建中应包含的内容。实际上,“src/libs”并不存在。我只想将生成的文件(runtime.js、polyfills.js、vendor.js、main.js)复制到一个特定的目录。不幸的是,您的建议不起作用,实际上它给出了一个编译错误,因为src/libs目录不存在。它越来越近了--deployUrl=“/js/”表示要在index.html上使用的生成文件的路径,但它不会自行创建目录,甚至不会将文件复制到那里。有办法复制它们吗?使用一些脚本来实现,这就是我们如何使用CI/CDHi Shubham,“src/libs”实际上并不存在。我想为捆绑的js文件(runtime.js、polyfills.js、vendor.js、main.js、styles.js)指定一个目录