Node.js tsconfig.json中模块类型之间的差异
在tsconfig.json中Node.js tsconfig.json中模块类型之间的差异,node.js,angular,Node.js,Angular,在tsconfig.json中 { "compilerOptions": { "target": "es5", "module": "commonjs", "moduleResolution": "node", "sourceMap": true, "emitDecoratorMetadata": true, "experimentalDecorators": true, "removeComments": false
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"moduleResolution": "node",
"sourceMap": true,
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"removeComments": false,
"noImplicitAny": false
}
}
我无法理解以下模块
类型之间的区别:
“commonjs”、“amd”、“umd”、“系统”、“es6”、“es2015”、“无”
问题:我应该使用哪个值,什么时候应该使用它?CommonJS模式(或nodejs):
var someOtherFunction=require('./someOtherFunction.js');
exports.add=函数(){
var sum=0,i=0,args=arguments,l=args.length;
而(i
ES6模式:
import someOtherFunction from './someOtherFunction.js';
export function add() {
var sum = 0, i = 0, args = arguments, l = args.length;
while (i < l) {
sum += args[i++];
}
return sum;
}
define(['someOtherFunction'], function () {
return function () {
var sum = 0, i = 0, args = arguments, l = args.length;
while (i < l) {
sum += args[i++];
}
return sum;
};
});
从“./someOtherFunction.js”导入someOtherFunction;
导出函数add(){
var sum=0,i=0,args=arguments,l=args.length;
而(i
AMD模式:
import someOtherFunction from './someOtherFunction.js';
export function add() {
var sum = 0, i = 0, args = arguments, l = args.length;
while (i < l) {
sum += args[i++];
}
return sum;
}
define(['someOtherFunction'], function () {
return function () {
var sum = 0, i = 0, args = arguments, l = args.length;
while (i < l) {
sum += args[i++];
}
return sum;
};
});
define(['someOtherFunction'],function(){
返回函数(){
var sum=0,i=0,args=arguments,l=args.length;
而(i
异步模块定义(AMD)是最流行的客户端代码,而node.js模块(CommonJS模块/1.1的扩展)是服务器端环境中的主流模式
通用模块定义(UMD)是一组样板食谱,试图弥合AMD和node.js之间的差异,允许工程师以单一格式编写代码库,而不是以两种格式编写或在构建步骤中转换为其他格式
ES5是您经常看到的普通JavaScript
您将在Angular2上使用ES6,也称为ECMAScript 2015。使用ES6是否支持所有新旧浏览器显然不支持,但您定义的是target=“es5”,这意味着它将编译为大多数浏览器支持的es5。因此,您可以确定哪种模块类型更灵活或更支持用于任何应用程序browser@kokadwarprafulla,刚才解释过,如果您使用ES6,它将被编译为Es5,并且受到很好的支持。如果第一个示例定义了“add”函数,然后通过
module.exports={add}将其导出,那么它对commonjs不是更具启发性吗
?