angular项目中各个文件的作用

原文地址

https://www.jianshu.com/p/176ea79a7101

大纲

  1、对angular项目中的一些文件的概述
  2、对其中一些文件的详细描述
  2.1、package.json
  2.2、tsconfig.json
  2.3、Polyfills

对angular项目中的一些文件的概述

angular-cli.json

  Angular CLI 的配置文件。 在这个文件中,你可以设置一系列默认值,还可以配置项目编译时要包含的那些文件。

karma.conf.js

  karma 测试运行器的配置。

protractor.config.js

  protractor 端对端 (e2e) 测试器运行器的配置。

package-lock.json

  package-lock.json是当 node_modules 或 package.json 发生变化时自动生成的文件。这个文件主要功能是确定当前安装的包的依赖,以便后续重新安装的时候生成相同的依赖,而忽略项目开发过程中有些依赖已经发生的更新。

package.json

  为项目指定 npm 依赖包。包含了一些命令脚本,用来运行应用、运行测试与其他。

tsconfig.json

  为 TypeScript 编译器指定如何将 TypeScript 代码转换为 JavaScript 文件,用来在所有现代浏览器中运行。

tslint.json

  利用 npm 安装的 TypeScript 语法检查器 (linter) 检测 TypeScript 代码并在你违反它的规则时提示你。

文件夹e2e/

  应用的端对端(e2e)测试,用 Jasmine 写成并用 protractor 端对端测试运行器测试。

文件夹node_modules/

  用 npm install 命令安装的 npm 包。

polyfills.ts

  不同的浏览器对 Web 标准的支持程度也不同。 腻子脚本(polyfill)能把这些不同点进行标准化。 你只要使用 core-js 和 zone.js 通常就够了,不过你也可以查看浏览器支持指南以了解更多信息。

environments/*

  这个文件夹中包括为各个目标环境准备的文件,它们导出了一些应用中要用到的配置变量。 这些文件会在构建应用时被替换。 比如你可能在产品环境中使用不同的 API 端点地址,或使用不同的统计 Token 参数。 甚至使用一些模拟服务。 所有这些,CLI 都替你考虑到了。

对其中一些文件的详细描述

package.json

概述

  package.json是npm创建的并且是需要使用npm引入依赖包的时候的配置文件。
  每个项目的根目录下面,一般都有一个package.json文件,定义了这个项目所需要的各种模块,以及项目的配置信息(比如名称、版本、许可证等元数据)。npm install命令根据这个配置文件,自动下载所需的模块,也就是配置项目所需的运行和开发环境。

最基本的package.json文件

{
  "name" : "xxx",
  "version" : "0.0.0",
}

package.json文件中各个字段的说明

  1、scripts字段指定了运行脚本命令的npm命令行缩写,比如start指定了运行npm run start时,所要执行的命令。

  2、dependencies字段,devDependencies字段dependencies字段指定了项目运行所依赖的模块,
    devDependencies指定项目开发所需要的模块。
    它们都指向一个对象。该对象的各个成员,分别由模块名和对应的版本要求组成,表示依赖的模块及其版本范围。

  3、peerDependencies
    有时,你的项目和所依赖的模块,都会同时依赖另一个模块,但是所依赖的版本不一样。比如,你的项目依赖A模块和B模块的1.0版,而A模块本身又依赖B模块的2.0版。
    大多数情况下,这不构成问题,B模块的两个版本可以并存,同时运行。但是,有一种情况,会出现问题,就是这种依赖关系将暴露给用户。
    最典型的场景就是插件,比如A模块是B模块的插件。用户安装的B模块是1.0版本,但是A插件只能和2.0版本的B模块一起使用。这时,用户要是将1.0版本的B的实例传给A,就会出现问题。因此,需要一种机制,在模板安装的时候提醒用户,如果A和B一起安装,那么B必须是2.0模块。
    peerDependencies字段,就是用来供插件指定其所需要的主工具的版本。

  4、bin字段用来指定各个内部命令对应的可执行文件的位置。

  5、main字段指定了加载的入口文件,require(‘moduleName‘)就会加载这个文件。这个字段的默认值是模块根目录下面的index.js。

  6、config 字段段用于添加命令行的环境变量。

  7、browser字段指定该模板供浏览器使用的版本。Browserify这样的浏览器打包工具,通过它就知道该打包那个文件。

  8、engines 字段指明了该模块运行的平台,比如 Node 的某个版本或者浏览器。

  9、man字段用来指定当前模块的man文档的位置。

  10、style字段指定供浏览器使用时,样式文件所在的位置。样式文件打包工具parcelify,通过它知道样式文件的打包位置。

tsconfig.json

tsconfig.json的作用

  在项目的根目录下创建 tsconfig.json 文件。
  浏览器不能直接执行 TypeScript ,需要用编译器转译成JavaScript,而且编译器需要进行一些配置。 tsconfig.json 的配置就是指导编译器如何生成JavaScript文件。

tsconfig.json中各个参数的作用

{
  "compilerOptions": {
    "declaration": false,
    "module": "commonjs", // 组织代码的方式
    "target": "es5", // 编译目标平台
    "moduleResolution": "node",
    "sourceMap": true, // 把ts文件变异成js文件时,是否生成对应的SourceMap文件
    "emitDecoratorMetadata": true, // 让TypeScript支持为带有装饰器的声明生成元数据
    "experimentalDecorators": true, // 是否启用实验性装饰器特性
    "noImplicitAny": true,
    "lib": ["dom", "es6"],
    "suppressImplicitAnyIndexErrors": true
  },
  "exclude": [
    "node_modules",
    "dist"
  ],
  "awesomeTypescriptLoaderOptions": {
    "forkChecker": true,
    "useWebpackText": true
  },
  "compileOnSave": false,
  "buildOnSave": false
}

Polyfills

/*
    配置好上述的几个文件之后呢,我们在项目中的根目录下创建一个 src 文件夹。

    在 src 文件夹的下面新建一个 polyfills.ts 文件。

    polyfills.ts 文件里引入了运行Angular应用时所需的一些标准js。
*/
import ‘core-js/es6/symbol‘;
import ‘core-js/es6/object‘;
import ‘core-js/es6/function‘;
import ‘core-js/es6/parse-int‘;
import ‘core-js/es6/parse-float‘;
import ‘core-js/es6/number‘;
import ‘core-js/es6/math‘;
import ‘core-js/es6/string‘;
import ‘core-js/es6/date‘;
import ‘core-js/es6/array‘;
import ‘core-js/es6/regexp‘;
import ‘core-js/es6/map‘;
import ‘core-js/es6/set‘;
import ‘core-js/es6/weak-map‘;
import ‘core-js/es6/weak-set‘;
import ‘core-js/es6/typed‘;

/** Evergreen browsers require these. **/
import ‘core-js/es6/reflect‘;

import ‘core-js/es7/reflect‘;

/**
 * Zone JS is required by Angular itself.
 */
import ‘zone.js/dist/zone‘;

import ‘ts-helpers‘;

if (process.env.ENV === ‘production‘) {
  // Production
} else {
  // Development and test
  Error[‘stackTraceLimit‘] = Infinity;
  require(‘zone.js/dist/long-stack-trace-zone‘);
}

原文地址:https://www.cnblogs.com/shcrk/p/9211330.html

时间: 2024-10-09 21:34:27

angular项目中各个文件的作用的相关文章

Eclipse 中 Java 项目中 .settings 文件夹作用

今天工作时,因对 .settings 文件夹误操作,耗时 6 个多小时,才了解到原因就出在 .settings 文件夹.经查阅资料,对 .settings 做如下整理: 就如setting这个名字,就是存放存放各种插件的配置文件..有这些文件的约束你可以更好的利用IDE进行coding.所以呢,这些文件只是用来配置环境用的. 1. org.eclipse.jdt.core.prefs 该文件是与Compile相关的配置,一般情况下的内容如下: 可以手动修改该文件,添加一些其他的配置,然后重启Ec

在项目中拖动文件给出的提示详解

如果你在从项目外部往里拖放一个文件, 系统会给你提示如下一个Message, 那么他们到底都有什么用呢 我将利用a作为文件.A作为文件夹, 说明具体情况 1. Destination: Copy items if needed 如果你勾选这个选项, 那么A文件将从原路径copy到项目中(如果是项目中的文件, 将不会动, 如果是其他地方的文件就会复制过来).如果你删除[Move to Trish]之后你会发现项目中的文件被删除, 原路径的A文件没有被删除 如果你没有勾选这个文件, 那么此文件将会作

Android的学习之路(二)项目中原生文件的使用场景和文件介绍

1.src文件:java源代码存放目录 2.gen 文件:自动生成所有由android开发工具自动生成的文件,目录中最重要的就是R.java文件,这个文件由android开 发工具自动产生的.android开发工具会自动根据你存放res目录的资源,同步更新修稿R.java文件,正因为 R.java文件是由开发工具自动生成的,所以我们应避免手工修改R.java.R.java文件在应用中起到了字典的作 用,它包含了各种资源的ID,通过R.java,应用可以很方便的找到对应资源, 2.1R.java 

如何查看.Net源代码vs版本号以及C#项目中各文件的含义

查看.Net源代码vs版本号以及C#项目中各文件的含义 用记事本打开vs项目的.sln文件. 第2行就是这个源代码包的开发软件vs版本号了 注意了,如果是vs2003的sln文件通常没有这行,可以判断他的第一行的最后一部分文字 :  Format Version 8.00 Format Version 8.00   对应 vs2003 Format Version 9.00   对应  vs2005 Format Version 10.00  对应  vs2008 Format Version

Android项目中gen文件下R文件无法生成的解决的方法

帮一个网友解决R文件无法生成的问题,搜集了些材料特整理例如以下,刚開始学习的人參考他人代码时极易出现此种问题,一般都是xml文件出错,无法被正确解析. gen文件夹无法更新,或者gen文件夹下的R.JAVA文件无法生成 1.gen文件夹的用处 android gen文件夹下的R.java并非由用户创建,而是androidproject本身将android的资源进行自己主动"编号"(ID)值. 2.gen文件夹下R文件无法更新/生成的原因 1)res文件夹下的layout下的xml文件名

Android项目中gen文件下R文件无法生成的解决办法

帮一个网友解决R文件无法生成的问题,搜集了些材料特整理如下,初学者参考他人代码时极易出现此种问题,一般都是xml文件出错,无法被正确解析. gen目录无法更新,或者gen目录下的R.JAVA文件无法生成 1.gen目录的用处 android gen目录下的R.java并不是由用户创建,而是android工程本身将android的资源进行自动"编号"(ID)值. 2.gen目录下R文件无法更新/生成的原因 1)res目录下的layout下的xml文件名有错.按照android的命名规范是

Android的学习之路(四)项目中清单文件的学习和android中经常使用的显示单位

1.所谓的清单文件就是项目中的AndroidManifest.xml文件.这个文件但是有大用处的.比方:app的名字,图标.app支持的版本号app的包名等等.以下我就介绍下这个清单文件的各个參数的作用. <manifest xmlns:android="http://schemas.android.com/apk/res/android"命名空间 package="com.example.hello"包名唯一标示一个应用 android:versionCod

eclipse项目中.classpath文件详解

1 前言 在使用eclipse或者myeclipse进行Java项目开发的时候,每个project(工程)下面都会有一个.classpath文件,那么这个文件究竟有什么作用? 2 作用 .classpath文件用于记录项目编译环境的所有信息,包括:源文件路径.编译后class文件存放路径.依赖的jar包路径.运行的容器信息.依赖的外部project等信息.如果把该文件删除,则eclipse不能讲该工程识别为一个正常的java工程,仅仅当做普通的文件夹而导致不能正常运行. 3 .classpath

iOS 项目中的文件 - projectname-Info.plist - projectname-Prefix.pch

A.项目中的常见文件 1.单元测试Test 2.Frameworks(xCode6 创建的SingleView Project没有) 依赖框架 3.Products 打包好的文件 4. projectname-Info.plist 全局配置文件 所以最好其他的plist文件不要带有Info字眼 (1)更改项目名 a.修改Bundle display name b.clean c.模拟器删除app,重新生成 (2)Bundle Identifier App唯一标识符 (3)stroyboard入口