首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

是否有某些文件我不应该包含在Angular 2中的barrel文件中,和/或导入顺序是否重要?

在Angular 2中,barrel文件是一种特殊的文件,用于导出模块中的所有组件、指令、服务等。在使用barrel文件时,有一些文件是不应该包含在其中的。

首先,不应该将测试文件(spec文件)包含在barrel文件中。测试文件通常用于编写单元测试或集成测试,它们与应用程序的正常运行无关,因此不应该被导入到其他文件中。

其次,不应该将配置文件(如tsconfig.json、angular.json等)包含在barrel文件中。这些配置文件是用于配置项目的构建、编译等过程,它们不属于应用程序的一部分,因此也不应该被导入到其他文件中。

此外,还有一些特定的文件或文件夹也不应该包含在barrel文件中,例如node_modules文件夹、dist文件夹、.git文件夹等。这些文件或文件夹通常包含第三方库、构建输出等内容,它们不应该被导入到其他文件中。

关于导入顺序的重要性,对于Angular 2来说,导入顺序是重要的。在使用模块化开发时,我们需要按照依赖关系的顺序来导入模块、组件、服务等。如果导入顺序不正确,可能会导致编译错误或运行时错误。

在Angular 2中,推荐的导入顺序是先导入Angular的核心模块,然后是第三方库模块,最后是自定义模块。这样可以确保依赖关系的正确性,并提高代码的可读性和可维护性。

对于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体的云计算品牌商,我无法给出具体的推荐。但腾讯云作为一家知名的云计算服务提供商,提供了丰富的云计算产品和解决方案,可以根据具体需求进行选择和使用。

总结:在Angular 2中,不应该将测试文件和配置文件包含在barrel文件中,导入顺序是重要的,应按照依赖关系的顺序进行导入。关于腾讯云相关产品和产品介绍,建议参考腾讯云官方网站获取更详细的信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Rspack 作者揭秘,你的 Tree Shaking 真的起作用了吗?

” 在某些情境下,像 usedExports 这样的优化也被认为是 tree shaking 和 sideEffects[2] 的一部分: “sideEffects 和 usedExports(通常更多地被称作...这一点解释了为什么在提到的例子中,button.js 及其子树(包括 button.css 和 side-effect.js)可以被安全删除,这在组件库的情景中尤为重要。.../components/button'; 像 Next.js 和 UmiJS 这类框架也提供了类似的优化功能,称为“优化包导入”[4]。他们的方法是在加载阶段重写这些路径。...这通常可以归结为三个主要类别之一: SideEffect 优化失败 当一个模块的导出变量未被使用仍被包含在最终的包中时,通常表示 SideEffect 优化失败。...,使得该模块被包含在最终的包中。

31210

Angular快速学习笔记(2) -- 架构

它将核心功能和可选功能作为一组 TypeScript 库进行实现,你可以把它们导入你的应用中。 全新的Angular 是一个用 HTML 和 TypeScript 构建客户端应用的平台与框架。...Angular 本身使用 TypeScript 写成的。它将核心功能和可选功能作为一组 TypeScript 库进行实现,你可以把它们导入你的应用中。 1....JavaScript 中,每个文件是一个模块,文件中定义的所有对象都从属于那个模块。 通过 export 关键字,模块可以把它的某些对象声明为公共的。...数据绑定在模板及其组件之间的通讯中扮演了非常重要的角色,它对于父组件和子组件之间的通讯也同样重要。 ? 父组件,通过属性绑定向子组件传递数据,而子组件通过事件绑定向与父组件通信。...通常在构造函数,注入依赖的service: constructor(private service: HeroService) { } 当 Angular 发现某个组件依赖某个服务时,它会首先检查是否该注入器中已经有了那个服务的任何现有实例

5.3K20
  • Top JavaScript Frameworks & Topics to Learn in 2017

    然后全身心的投入到工作中吧。 可选学习笔记 这种标致 * 表示是严格可选的,这意味着,我推荐他们,如果你对他们感兴趣,或者你的工作需要了解它们,但你不应该感到有学习他们的义务。...我建议学习 vim ,或至少加入你的备忘单,因为迟早,你需要在服务器上编辑文件,掌握 vim 是最简单的方法 - vim 安装在几乎所有的 Unix 兼容的操作系统,通过 SSH 终端连接可以很好的运作...在代码审查和TDD后,你可以做第三件事,以减少代码中的错误。 Tern.js:类型推理工具的标准JavaScript,目前我最喜欢的类型相关的 JavaScript 工具 不需要编译步骤或注释。...掌握它们真的需要相当多的实践。 EDIT: 为什么我没有列举出的那些框架>? 很多人问我,“为什么没有列举出他们喜欢的框架?” 因为其中一个重要标准是,“在工作中能被真正的用上”。...使用补丁导入可以将捆绑包中的 rxjs 依赖关系的大小减少约 200k。

    2.3K00

    android-代码样式规范

    在某些情况下,约定以重要的方式发生了变化,较旧的代码可能使用已弃用的模式或库。当使用这样的代码,可以继续现有的风格。但是,在创建新组件时,不要使用不推荐使用的库。...4.Java风格规则 使用Javadoc标准注释 每个文件应在顶部有一个版权声明,其后是package和import语句(每个块由空行分隔),最后是类或接口声明。...这在框架和应用程序之间的交互中尤其重要,由框架正确处理的第三方应用程序引起的条件不应该触发高于DEBUG级别的日志记录。...在可由第三方应用程序访问或代表第三方应用程序访问的文件系统上具有完整的文件系统不应该记录在高于INFORMATIVE的级别。...我们在这里提出全球风格规则,所以人们知道词汇,但本地风格也很重要。如果你添加到一个文件的代码看起来与现有的代码有很大的不同,当读者阅读它时,它会使读者脱离他们的节奏。尝试避免这一点。

    55230

    Angular 5.0.0发布!

    构建优化器是CLI中的一个工具,它基于我们对你Angular应用的理解,可以把构建后的包变得更小。 构建优化器有两个主要任务。...首先,把你应用的某些部分标记为 pure,以便原有工具利用它改进“tree shaking”的优化效果,同时删除应用中不必要的东西。 其次,构建优化器会从你的应用中删除Angular装饰器代码。...保留空白 过去编译器会忠实地复现并在模板中包含制表符、换行符和空白。现在你可选择是否在组件和应用中包含空白了。 可以在每个组件的装饰器中指定这个配置,而当前的默认值为true。...在这次小版本升级中,我们默认打开了构建优化器,让开发者拿到更小的包。 我们还修改了使用 .tsconfig文件的方式,以更严格地遵守TypeScript标准。...表单对应用很重要,如果有服务端验证,或者验证或更新值会触发较慢的操作,你当然希望它少跑几次。现在你可以在控件层面控制验证和更新值的时机了,也可以在表单层面设置。

    4.4K40

    Angular v8 发布!来看看有什么新功能

    Manfred Steyer 解释了最新 Angular 版本中最重要的变化。 Angular 8 刚刚发布!...在本文中,我将介绍 Angular 8 和 Angular CLI 8 的最重要的新功能。我在文中的例子可以在 GitHub 上找到。...为了将类似这样的计算甩给后台,我们必须首先用 Angular CLI 创建 一个Web worker: 1ng generate worker n-queens 此语句不仅为 worker 创建文件,还为构建过程和现有文件中的条目创建配置文件...完整的实现包含在作者的样本集[1]中。为了便于说明,可以在主线程和 Web worker 中解决可用的 n 皇后问题。.../lazy/lazy.module').then(m => m.LazyModule) 4} 新的书写风格中仍然包含文件名作为魔术值。但是由于许多IDE支持导入,因此无效值将立即返回错误。

    3K30

    Angular入门,开发环境搭建,使用Angular CLI创建你的第一个Angular项目

    因此这篇文章主要是对这段时间使用Angular做一些小总结,希望可以帮到有需要的同学。...Angular中的生命周期函数: 什么是生命周期函数?...生命周期钩子:https://angular.cn/guide/lifecycle-hooks 当 Angular 使用构造函数新建一个组件或指令后,就会按下面的顺序在特定时刻调用这些生命周期钩子方法:...该方法接受当前和上一属性值的 SimpleChanges 对象 在 ngOnInit() 之前以及所绑定的一个或多个输入属性的值发生变化时都会调用。...Angular项目创建并运行: 通过Angular脚手架创建一个新的项目: 在终端(win+r 输入cmd)中打开E:\Angular 文件目录,输入一下命令新建项目: ng new MyAngularProject

    2.8K20

    你知道在终端执行 Python 代码的方式吗?

    1、通过标准输入和管道因为如何用管道传东西给一个进程是属于 shell 的内容,我不打算深入解释。毋庸置疑,你可以将代码传递到 Python 中。...但这也是为什么你不能/不应该传入包含在一个包里的模块路径。因为sys.path可能不包含该包的目录,因此所有的导入将相对于与你预期的包不同的目录。...要在你的项目中做到这点,只需要在包里指定一个__main__.py文件,它将被当成__main__执行。而且子模块可以像任何其它模块一样导入,因此你可以对其进行各种测试。...5、执行一个压缩文件如果你确实有多个文件和/或依赖模块,并且希望将所有代码作为一个单元发布,你可以用一个__main__.py,放置在一个压缩文件中,并把压缩文件所在目录放在 sys.path 里,Python...执行压缩文件对扩展模块无效(这就是为什么 setuptools 有一个 zip_safe[8]标志的原因)。

    2.4K20

    Maven生命周期

    一般来说,位置稍后的过程都会依赖于之前的过程。当然,maven同样提供了配置文件,可以依照用户要求,跳过某些阶段。...三种生命周期 下面列出了default、clean和site生命周期的所有构建阶段,这些阶段按照指定的顺序执行。...initialize 初始化构建状态,例如设置属性或创建目录。 generate-sources 生成包含在编译中的任何源代码。...对于Maven 2.0.5和以上。 test 使用合适的单元测试框架运行测试。这些测试不应该要求打包或部署代码。 prepare-package 在实际包装前执行必要的准备工作。...install 将该包安装到本地存储库中,作为本地其他项目的依赖项。 deploy 在集成或发布环境中完成,将最终包复制到远程存储库中,以便与其他开发人员和项目共享。

    40310

    浅谈HTML5单页面架构(一)——requirejs + angular + angular-route

    angular的同学,可以灵活修改一下页面某些内容。...当然,严谨的项目不应该出现zepto。...团队合作过程中,各种协作,代码冲突等等,都会给一个优秀框架带来各种奇怪难题。所以,有好的框架还不够,我们还需要根据自身业务和团队的情况,按需裁剪或者修改框架,找到最佳的实施方案。...resolve的写法比较特殊,接受的是一个key:value对象,keyName将会导入到controller中(如果controller有注明依赖)。...再另外,有专家要拍板了,这样乱修改,肯定带来毛病。是的,我不得不说,我自己都没彻底的检查是否有问题,但按照实际情况来看,暂时没遇到问题。

    3.4K20

    JavaScript生态加速攻略:模块解析

    经过一番检查,我发现了一个在我查看的每个分析文件中都存在的重复模式,它会影响这些任务的总运行时间高达 30%。它是我们基础设施中如此关键和有影响力的一部分,值得有一篇专门的博客文章来介绍。...或斜杠 / 开头的规范符,是一种特殊的导入方式,通常用于引用npm包。该算法在node的文档中有详细描述。...简而言之,将检查每个目录是否包含模块目录。检查的数量直接与导入文件所在的目录数相关。问题在于,这会发生在每个导入 foo 的文件中。...这通常是通过TypeScript的 paths 编译器选项或捆绑器中的解析别名来完成的。问题在于,这些通常与包导入无法区分。...但是,看着数字,这只会使总的代码检查时间增加0.05%。与此相比,这只是一个非常小的影响,但是额外的文件系统调用不应该更重要吗?

    76140

    在同一基准下对前端框架进行比较

    通常“todo”并没有传达出在构建真正的程序时所需的足够的知识和视角,。 标准化 一个符合某些规则的项目。提供后端API、静态标记、样式和规范。...github: https://github.com/gothinkster/realworld 是否有大量的拥趸者并不重要。唯一要求是它是否出现在了 RealWorld 的代码仓库页面上。 ?...公平地说,一些程序过于花里胡哨,但它不应该产生重大影响。我们量化的唯一文件夹是每个程序中的 src/。...这取决于框架的大小和你添加的额外依赖项,以及构建工具如何消除捆绑包中未使用的代码。 简述 文件越小,下载越快,解析越少。 ? 传输大小以KB为单位 - 越少越好 结论 这里发生了很多令人惊讶的事情。...注意 Angular + ngrx:在 /libs 文件夹内完成的代码行数计算,仅包括*.ts 和 *.html 文件。如果你觉得这是错的,请告诉我正确的值是多少,以及你是如何计算的。

    96020

    Python 第三方模块 科学计算 SciPy模块1 简介,常数,IO「建议收藏」

    大家好,又见面了,我是你们的朋友全栈君。...,提供了一些空间相关的数据结构和算法,如Delaunay三角剖分/共面点/凸包/维诺图/Kd树 special 特殊函数模块,提供了各种特殊的数学函数,如贝塞尔函数 stats 统计模块,提供一些统计学上常用的函数和分布...;为str/file-like object mdict:指定要在中添加的键值对;为dict appendmat:是否在提供的文件名结尾加上.mat后缀;为bool...#为True时,中可不加后缀名(也可加).mat;为False时,必须加 byte_order:指定字节顺序;为None(从文件中推测)/str(可为'native...文件的版本;可为1/2 maskandscale:指定是否基于属性自动缩放/隐藏数据;为bool o:返回创建的对象,其中包含中的数据;为netcdf_file object

    1K20

    如何在 ASP.NET MVC 中集成 AngularJS(2)

    捆绑可以很容易地将多个文件合并或捆绑到一个文件中。您可以创建 CSS,JavaScript 和其他包。压缩可以优化脚本和 CSS 代码,如去除不必要的空格和注释,缩短变量名到一个字符。...我为工程中的每一个文件设置了一个独立的捆绑,包括对脚本的单独捆绑,Angular 的核心文件,共享的 JavaScript 文件和主目录单,客户目录和产品目录。...我创建了客户和产品目录的独立包,带着这种想法,当用户请求应用程序的这些源文件时,应以将会动态的加载这些捆绑。...我需要的信息中的最重要一块是虚拟路径和每一次捆绑的长版本号。幸运的是,访问捆绑信息的方法,本身就是一种捆绑的功能。 下面的代码行的关键行引用了 BundleTable。...最初我计划创建一个常规的 AngularJS 服务或者一个包含在 _Layout.cshtml 文件中能够使用 Razor 语法注入服务器端的方法集。

    8.3K100

    模块化开发 Angular 应用

    想要更好地理解 Angular 应用程序所有的不同构建的模块? 在这篇文章中,我们将走进模块的内容。 在 angular 应用中,模块是共享和重用代码的好方法。...Angular 中的代码通常以模块的形式组织。我们可以将模块视为包含特定用例所需要代码的包或捆绑包。 最重要的模块是 App-Module,每个通过脚手架生成的应用都有它。...如果你想在多个模块中使用你的组件,你需要将改组件捆绑到一个单独的模块中,并将其导入到模块中。 Imports 说到导入... 你的模块可以导入任意数量的子模块。还没有定义任何自定义模块?...虽然很多特性都包含在 Angular 的核心中,但是有些特性被捆绑在它们自己的模块中。比如,你想使用 HttpClient,你得想导入 HttpClientModule。...当你以惰性方式加载模块时,它不会包含在初始的程序中。相反,它仅在需要的时候才下载。为啥要下载我们还没用得上的组件呢,是吧? 那么,它是怎么工作的? 我们用惰性加载方式更改下先前的例子。

    3.1K10

    Go 标准库

    在说标准库之前,可能要先说一下Go语言里“包”的概念,一个包代表了Go语言中代码组织的主要形式,因为Go对单文件没有限制,理论上你的代码,都可以写在一个文件中。...正常情况下,编写一个包,有最佳结构让你来学习,如: /bin /pkg /src xxmain.go Makefile 如果想要构建一个程序,则包和包内的文件都必须以正确的顺序进行编译。...包的依赖关系决定了其构建顺序。属于同一个包的源文件必须全部被一起编译,一个包即是编译时的一个单元,因此根据惯例,每个目录都只包含一个包。...本文发表后,标准库的内容还可能继续增加,因此 建议大家最好是通过在线查阅库API或使用godoc(包含在Go发布包中)来获取最新信息以及全面了解每个包所具备的功能。...exp包通常只存在于从Google Go源码树上签出的源码包中,但一般不会包含在预构建好的包中。其他包可以放心使用,虽然在写下本文的这一刻,很多包依旧不够完整。

    1.1K20

    Angular React Vue我应该选择什么?

    现如今 Angular 和 React 非常流行,并且最近出现的新贵 VueJS 同样博得了很多人的关注。更重要的是,这只是一些新起之秀。 ?...在过去 2 年,npm 包的下载次数 市场生命周期 由于各种名称和版本,很难在 Google 趋势中比较 Angular,React 和 Vue。一种近似的方法可以是“互联网与技术”类别中的搜索。...如果某些包不再被维护,或者其他一些包在某些时候成为事实上的标准,这也可能是不利的。...这似乎是对于关注分离的权衡 - 模板,脚本和样式在一个文件中,但在三个不同的有序部分中。这意味着你可以获得语法高亮,CSS 支持以及更容易使用预处理器(如 Jade 或 SCSS)。...在你搜索的过程中,你可能会发现很多其他有吸引力的选项 —— 尽量不要被最新,最闪亮的框架蒙蔽。 我应该选什么?

    2.9K20

    Angular的12个经典问题,看看你能答对几个?(文末附带Angular测试)

    不论是初学Angular的新手,还是有一定Angular开发经验的开发者,了解本文中的12个经典面试问题,都将会是一个深入了解和学习Angular 2的知识概念的绝佳途径。...在文中,我们将会接触到很多Angular 2的重要概念,并附扩展阅读资料和自查小测试,供大家评估自己对Angular的了解程度。 Angular 经典问题及扩展阅读 1. ...使用Angular 2,和使用Angular 1相比,有什么优势?...Codelyzer是一个开源工具,用于运行和检查是否遵循了预定义的编码准则。Codelyzer仅对Angular和TypeScript项目进行静态代码分析。...loadChildren会从根文件夹中获取绝对路径。RouterModule.forRoot()会获取routes数组并配置路由器。 在子模块中导入模块特定路由。

    17.4K80

    深入探讨 Python 的 import 机制:实现远程导入模块

    导入系统的基础 1.1 导入单元构成 导入单元有多种,可以是模块、包及变量等。 对于这些基础的概念,对于新手还是有必要介绍一下它们的区别。...部分也可能处于 zip 文件中、网络上,或者 Python 在导入期间可以搜索的其他地方。命名空间包并不一定会直接对应到文件系统中的对象;它们有可能是无实体表示的虚拟模块。...但有时候我不想使用全部的插件,只想使用 plugin02、plugin04 ,那我就在配置文件中写我要使用的两个插件。...顺序很重要,避免递归导入) 然后加载模块(这是核心) 若加载出错,需要能够处理抛出异常( ImportError),若加载成功,则返回 module 对象 若你想看具体的例子,可以接着往后看。...,你需要注意两点,很重要: execute_module 必须重载,而且不应该有任何逻辑,即使它并不是抽象方法。

    1K10

    深入探讨 Python 的 import 机制:实现远程导入模块

    导入系统的基础 1.1 导入单元构成 导入单元有多种,可以是模块、包及变量等。 对于这些基础的概念,对于新手还是有必要介绍一下它们的区别。...部分也可能处于 zip 文件中、网络上,或者 Python 在导入期间可以搜索的其他地方。命名空间包并不一定会直接对应到文件系统中的对象;它们有可能是无实体表示的虚拟模块。...但有时候我不想使用全部的插件,只想使用 plugin02、plugin04 ,那我就在配置文件中写我要使用的两个插件。...顺序很重要,避免递归导入) 然后加载模块(这是核心) 若加载出错,需要能够处理抛出异常( ImportError),若加载成功,则返回 module 对象 若你想看具体的例子,可以接着往后看。...,你需要注意两点,很重要: execute_module 必须重载,而且不应该有任何逻辑,即使它并不是抽象方法。

    64430
    领券