- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想弄清楚这整个 compile Ahead-of-Time主意。我对这些好处很满意,但实际操作的过程让我很头疼。
我正在尽可能地遵循食谱。可能唯一的大区别是他们的 main.ts
是我的boot.ts
但是我的boot.ts
字面上是剪切和粘贴他们的 main.ts
.我的 package.json 中有他们说要安装的所有内容和以下任务:
"ngc": "ngc -p tsconfig-aot.json",
"rollup": "rollup -c rollup-config.js",
"copy-dist-files": "node build-scripts/copy-dist-files.js",
"aot": "npm run ngc && npm run rollup && npm run copy-dist-files"
tsconfig-aot.json:
{
"compilerOptions": {
"target": "es5",
"module": "es2015",
"moduleResolution": "node",
"inlineSourceMap": false,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": true,
"noImplicitAny": true,
"noImplicitReturns": true,
"pretty": false
},
"angularCompilerOptions": {
"genDir": "aot",
"skipMetadataEmit" : true
}
}
rollup-config.js:
import rollup from 'rollup';
import nodeResolve from 'rollup-plugin-node-resolve';
import commonjs from 'rollup-plugin-commonjs';
import uglify from 'rollup-plugin-uglify';
export default {
entry: 'aot/app/boot.js',
dest: 'aot/app/bundle.js', // output a single application bundle
moduleName: 'aot', // no idea what I'm SUPPOSED to put here, the rollup complained without it though
sourceMap: false,
format: 'iife',
plugins: [
nodeResolve({jsnext: true, module: true}),
commonjs({
include: 'node_modules/rxjs/**',
}),
uglify()
]
}
我的 copy-dist-files.js
只是一个节点脚本,用于将我的 css 和图像移动到 aot/
中的位置并且似乎在所有平台上都运行良好。老实说,该文件没有任何内容是特定于 Angular 的。如果您需要它,我会发布它,但我正在努力保持整洁。
在我运行 npm run aot
之后它成功完成,我运行 http-server aot
提供文件夹,我在控制台中收到此错误:
Uncaught Error: A platform with a different configuration has been created. Please destroy it first.
我从未使用 JiT 编译收到过错误。我不知道这是从哪里来的。每次我用谷歌搜索时,我都会发现人们询问与测试有关的问题,但这是关于在浏览器中运行的 bundle 。这些问题绕过了实际的错误文本,因为问题出在 their testing scaffolding 上。 .我不认为我正在加载任何其他平台,我不知道如何销毁它。特别奇怪的是,该网站似乎完全正常运行和运行。
不丑化 bundle.js 并没有帮助,因为错误似乎是在 Angular 的内部部分中抛出的,我没有写,也不想编辑。
我正在运行 Angular 2.1.1,所有浏览器都显示错误。这是怎么回事?
最佳答案
我想通了,很遗憾,因为我不了解我正在处理的过程,所以我没有在问题中提供足够的信息。
我在同一个文件 (boot.ts
) 中定义我的模块并引导它,所以当我按照说明书创建一个 boot-aot.ts
时,它指向对于我的旧 boot.ts
,仍然有对 @angular/platform-browser-dynamic
的引用和调用(特定于 JIT),然后还有对 @ 的调用angular/platform-browser
(特定于 AOT)。这就是创建两个平台的方式。
解决方法是在 module.ts
中定义我的模块,并有两个超简单的引导:
boot.ts:
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './module';
platformBrowserDynamic().bootstrapModule(AppModule)
.catch((err: any) => console.error(err));
和 boot-aot.ts:
import { platformBrowser } from '@angular/platform-browser';
import { AppModuleNgFactory } from '../aot/app/module.ngfactory';
platformBrowser().bootstrapModuleFactory(AppModuleNgFactory)
.catch((err: any) => console.error(err));
boot.ts
将在调试时用于 JIT 编译,boot-aot.ts
在 rollup-config.js
中被引用.
关于angularjs - 提前编译的 Angular 2 给出错误 "A platform with a different configuration has been created.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40253536/
我正在使用 Ubuntu 16.04。 当我更新时,我收到以下消息 $ sudo apt-get update .... E: dpkg was interrupted, you must manua
似乎有些autoconf项目使用configure.in文件生成configure脚本,有些使用configure.ac。 使用一种或另一种之间的区别/优势是什么? 最佳答案 这只是风格问题。历史上
我正在尝试按如下方式配置 logback,但它抛出了这个错误。配置文件如下: %d{ISO8601} %-5p [%c] %msg%n
从Miguel de Icaza: We use a library profile that is better suited for mobile devices, so we removed f
我有两个 .config 文件,我需要一个 System.Configuration.Configuration那是它们之间的部分合并? 我可以将文件读取为 XML 并轻松创建所需的合并,但它是一个字
我似乎无法理解这两个注释。我尝试阅读 javadocs 但仍然无法弄清楚。任何人都可以用简单的代码来解释这两个吗? 非常感谢。 最佳答案 您使用 @Configuration作为配置 Spring b
我正在为一个简单的问题而焦头烂额。我的 .NET Core 3 应用程序中有一些设置,我认为最好将其移至我的 appsettings.json 文件。我按照本指南这样做:https://www.c-s
我正在为一个简单的问题而焦头烂额。我的 .NET Core 3 应用程序中有一些设置,我认为最好将其移至我的 appsettings.json 文件。我按照本指南这样做:https://www.c-s
我有以下测试方法: [TestMethod] public void TestHarvestMethod() { HarvestTargetTimeRangeUTC time = new Ha
我的以下代码没有产生预期的输出: public static void main(String[] args) throws MalformedURLException { Configura
我知道要从源代码编译和安装某些东西,在 Unix 系统中,涉及的三个步骤是: 1) ./configure 2) make 3) make install 当我检查OpenCV from source
我有以下片段: static void Main(string[] args) { var container = new UnityContainer(); container.Re
我想好像 apache 的 commons-configuration 可能/支持从属性文件中获取属性作为 map 到目前为止,我已经设法使用以下代码片段间接地做到了这一点 Map map = ne
我正在寻找任何技巧来使用 CKEditor 配置中的参数配置我的插件。我必须传递一些只能在显示 View 时传递的参数。 我想要这样的东西(带有 jQuery 适配器的示例): jQuery('t
在我正在玩的代码中,我看到一些地方是 @Configuration 类除了定义静态类之外什么都不做。格式各不相同,但通常是这样的: @Configuration public class someAu
我们在带有 JRE 7 的 Windows 7 中安装了 Cassandra 2.0.6,我们更新了 cassandra.yaml 文件,如下所示: 数据文件目录:D:\cassandra_data\
我在启动类中收到“'Startup.Configuration' 和'Startup.Configuration' 之间的歧义”错误。我不知道我做了什么导致这个问题。我所做的只是创建了一个 DBCon
我已经安装了 Cygwin64,现在我想安装 extundelete . 所以我下载了它,解压了文件,但是当我运行 ./configure 时它说: $ ./configure Configuring
为什么需要做(在容器目录内): # cd /container/directory/ # ./configure 代替: # pwd /external/path # /container/direc
我正在尝试编译qucs-0.0.19但是当我放置./configure时,它给了我以下错误: checking Checking if admsXml is working... no config
我是一名优秀的程序员,十分优秀!