2016-03-07 65 views
0

我已经通过模块上的2ality article,但是,我很困惑,系统如何知道将模块视为模块?Babel如何知道如何将模块视为模块

import React from "react"; 
import { hello } from "./hello.js"; 

var Ctrl = React.createClass ({ 
    render : function() { 
     return (
      <div .... random data 
      ></div> 
     ); 
    } 
}); 
export default Ctrl; 

对我来说,模块只是一个写有全局代码的文件。我们通过文件名引用模块。

但是,我想知道当我们构建生产版本时,这些如何凝聚在一起。

系统如何知道这是一个模块&不只是声明全局变量?

难道是import/export命令,它实际上说:'啊哈,这是一个模块!

对不起新手问题。

回答

1

难道是import/export命令,它实际上说:'啊哈,这是一个模块!

是的!

更精确地,import关键字指示JavaScript引擎(或transpiler)来加载外部文件作为一个模块。

+0

没有输入关键字不指示JavaScript引擎或transpiler **技术上它有一天会,但不是今天作为模块正式来的JavaScript –

0

如果系统你指的是浏览器,它不知道,您通常使用另一种工具,用于实现您的模块的想法,并把它转换(代码放置)充当一个模块系统为您的浏览器理解。

一些工具,如做到这一点是需要在节点,browserify,的WebPack 即*,不喜欢