我有一个用TypeScript编写的Node.js和AngularJS应用程序,我正在尝试使用System.js加载模块.
如果我只导入一个类来指定一个类型,它工作正常.例如:
import {BlogModel} from "./model"
var model: BlogModel;
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试使用导入的类实例化变量时,我在运行时获得异常.例如:
import {BlogModel} from "./model"
var model: BlogModel = new BlogModel();
Run Code Online (Sandbox Code Playgroud)
未捕获的ReferenceError:未定义require
我使用CommonJS.我不能使用AMD,因为我有一个服务器端和客户端项目.这就是我使用System.js在客户端加载模块的原因.
这是我的System.js定义:
<script src="/assets/libs/systemjs-master/dist/system-polyfills.js"></script>
<script src="/assets/libs/systemjs-master/dist/system.src.js"></script>
<script>
System.config({
packages: {
app: {
format: 'register',
defaultExtension: 'js'
}
}
});
System.import('classes.ts')
.then(null, console.error.bind(console));
System.import('model.ts')
.then(null, console.error.bind(console));
</script>
Run Code Online (Sandbox Code Playgroud)
这是model.ts文件的内容:
import {User} from "./classes";
import {Post} from "./classes";
export class BlogModel{
private _currentUser: User;
private _posts: Post[];
get currentUser(){
return this._currentUser;
}
set currentUser(value: User){
this._currentUser = value;
}
get posts(){
return …Run Code Online (Sandbox Code Playgroud) 我正在开发一个Javascript项目并使用Chrome F12开发人员工具进行调试.由于某种原因,所有console.log输出和错误消息都声称它们出现在我的js文件的第1行.
...即,在每行右侧的控制台中,myFile.js:1即使第1行没有代码,代码显然也在不同的行上运行.
可能是什么原因造成的?