不能以 commonjs 方式 运行 angular2
Can not run angular2 in commonjs way
首先,我不知道package.json中@angular
和angular2
的区别。
但我喜欢 package.json 中的 angular2 方式。
这是我的 github source.
问题是我无法在tsconfig_c.json中将“system”更改为“commonjs”,否则angular2会抛出我无法理解的错误。
HTML:
<!DOCTYPE html>
<html>
<!-- #docregion head -->
<!-- #docregion base-href -->
<head>
<base href="/" />
<!-- #enddocregion base-href -->
<title>Angular 2 Seed</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- #docregion css -->
<link rel="stylesheet" href="styles.css">
<!-- #enddocregion css -->
<!-- 1. Load libraries -->
<script src="libs/angular2-polyfills.js"></script>
<script src="libs/system.src.js"></script>
<script src="libs/Rx.js"></script>
<script src="libs/angular2.dev.js"></script>
<script src="libs/router.dev.js"></script>
<!-- 2. Configure SystemJS -->
<script>
System.config({
packages: {
app: {
format: 'register',
defaultExtension: 'js'
}
}
});
System.import('app/bootstrap')
.then(null, console.error.bind(console));
</script>
</head>
<!-- 3. Display the application -->
<body>
<my-app>Loading...</my-app>
</body>
</html>
配置:
{
"compilerOptions": {
"target": "es5",
"module": "system",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"moduleResolution": "node",
"removeComments": false,
"noImplicitAny": true,
"suppressImplicitAnyIndexErrors": true
},
"exclude": [
"node_modules"
]
}
如果以“系统”方式编译,一切都很好。但我更喜欢“commonjs”方式。
谁能帮我解决这个问题?
正如@Sanket所说,angular2
包是Angular 2的旧测试版。关于你的问题,如果你在commonjs
中编译,你必须告诉SystemJs您的应用程序位于 commonjs
,因此您必须更改 index.html
配置:
System.config({
packages: {
app: {
format: 'cjs', // commonjs
defaultExtension: 'js'
}
}
});
首先,我不知道package.json中@angular
和angular2
的区别。
但我喜欢 package.json 中的 angular2 方式。
这是我的 github source.
问题是我无法在tsconfig_c.json中将“system”更改为“commonjs”,否则angular2会抛出我无法理解的错误。
HTML:
<!DOCTYPE html>
<html>
<!-- #docregion head -->
<!-- #docregion base-href -->
<head>
<base href="/" />
<!-- #enddocregion base-href -->
<title>Angular 2 Seed</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- #docregion css -->
<link rel="stylesheet" href="styles.css">
<!-- #enddocregion css -->
<!-- 1. Load libraries -->
<script src="libs/angular2-polyfills.js"></script>
<script src="libs/system.src.js"></script>
<script src="libs/Rx.js"></script>
<script src="libs/angular2.dev.js"></script>
<script src="libs/router.dev.js"></script>
<!-- 2. Configure SystemJS -->
<script>
System.config({
packages: {
app: {
format: 'register',
defaultExtension: 'js'
}
}
});
System.import('app/bootstrap')
.then(null, console.error.bind(console));
</script>
</head>
<!-- 3. Display the application -->
<body>
<my-app>Loading...</my-app>
</body>
</html>
配置:
{
"compilerOptions": {
"target": "es5",
"module": "system",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"moduleResolution": "node",
"removeComments": false,
"noImplicitAny": true,
"suppressImplicitAnyIndexErrors": true
},
"exclude": [
"node_modules"
]
}
如果以“系统”方式编译,一切都很好。但我更喜欢“commonjs”方式。 谁能帮我解决这个问题?
正如@Sanket所说,angular2
包是Angular 2的旧测试版。关于你的问题,如果你在commonjs
中编译,你必须告诉SystemJs您的应用程序位于 commonjs
,因此您必须更改 index.html
配置:
System.config({
packages: {
app: {
format: 'cjs', // commonjs
defaultExtension: 'js'
}
}
});