为什么我的 Typescript 导入仅在我执行 "console.log(myImport)" 时有效?
Why does my Typescript import only work if I do "console.log(myImport)"?
我正在尝试使用 JSPM 0.17.0
.
加载我的 Angular 1.5.2
应用程序(使用 Typescript 编写)
这是我的 HTML:
<!DOCTYPE html>
<html ng-app="MyApp">
<head>
<meta charset="utf-8">
<title>My App</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width">
<link rel="stylesheet" href="index.css">
<script src="jspm_packages/system.js"></script>
<script src="jspm.browser.js"></script>
<script src="jspm.config.js"></script>
</head>
<body>
<main first-name="huh" last-name="what"></main>
<script>
SystemJS.import('app.ts');
</script>
</body>
</html>
对于我的./app.ts
,这不起作用↓
import $ from 'jquery'
import angular from 'angular'
import main from './components/main/main.ts';
module app {
angular.module('MyApp', [
'main'
])
}
// which gives me "[$injector:nomod] Module 'main' is not available!"
这确实有效↓
import $ from 'jquery'
import angular from 'angular'
import main from './components/main/main.ts';
module app {
angular.module('MyApp', [
'main'
])
console.log(main);
}
// Now it works fine, no error.
那么,除非我在模块声明中使用 console.log(main)
明确引用我导入的模块,否则为什么会失败?我的导入语法有什么问题?
为避免引发副作用,imports are not loaded until referenced in a module。
归功于 Ryan Cavanaugh
我正在尝试使用 JSPM 0.17.0
.
1.5.2
应用程序(使用 Typescript 编写)
这是我的 HTML:
<!DOCTYPE html>
<html ng-app="MyApp">
<head>
<meta charset="utf-8">
<title>My App</title>
<meta name="description" content="">
<meta name="viewport" content="width=device-width">
<link rel="stylesheet" href="index.css">
<script src="jspm_packages/system.js"></script>
<script src="jspm.browser.js"></script>
<script src="jspm.config.js"></script>
</head>
<body>
<main first-name="huh" last-name="what"></main>
<script>
SystemJS.import('app.ts');
</script>
</body>
</html>
对于我的./app.ts
,这不起作用↓
import $ from 'jquery'
import angular from 'angular'
import main from './components/main/main.ts';
module app {
angular.module('MyApp', [
'main'
])
}
// which gives me "[$injector:nomod] Module 'main' is not available!"
这确实有效↓
import $ from 'jquery'
import angular from 'angular'
import main from './components/main/main.ts';
module app {
angular.module('MyApp', [
'main'
])
console.log(main);
}
// Now it works fine, no error.
那么,除非我在模块声明中使用 console.log(main)
明确引用我导入的模块,否则为什么会失败?我的导入语法有什么问题?
为避免引发副作用,imports are not loaded until referenced in a module。
归功于 Ryan Cavanaugh