Angular 7-如何分离不同目录中的文件
我正在将Angular 7应用程序配置为生产环境,并尝试在不同的目录中组织文件 angular.jsonAngular 7-如何分离不同目录中的文件,angular,angular-cli,angular7,Angular,Angular Cli,Angular7,我正在将Angular 7应用程序配置为生产环境,并尝试在不同的目录中组织文件 angular.json "architect": { "build": { "builder": "@angular-devkit/build-angular:browser", "options": { "outputPath":
"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文件在根目录上生成,字体文件也复制到根目录
我想:
├── 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)指定一个目录