代码之家  ›  专栏  ›  技术社区  ›  inorganik

es6是否可以导入commonjs模块?

  •  0
  • inorganik  · 技术社区  · 5 年前

    我有一个commonjs模块,它是由Typescript 3.3.3生成的。

    是否可以将其与es6导入语句一起使用?这是我试过的。

    生成的模块在文件末尾导出如下计数:

    exports.CountUp = CountUp;
    

    import { CountUp } from './js/countUp.js';
    

    而且在索引.html:

      <script src="./js/countUp.js"></script>
      <script src="./main.js" type="module"></script>
    

    但我明白了

    倒计时。js:13未捕获的引用错误:未定义导出

    (注:倒计时.js现在作为es6模块分发)

    1 回复  |  直到 4 年前
        1
  •  4
  •   Get Off My Lawn    5 年前

    简而言之:没有


    export 而不是 exports . 是一个commonjs功能,主要用于节点,而不是web浏览器。

    如果你想用 commonjs 您需要使用第三方库,如 requirejs ,但这使用 require() 而不是 import ,和 而不是 出口 . 然后,您就可以使用import/export with typescript编写代码,但它将使用 require requirejs 我来处理剩下的。

    因此,要在浏览器中正确使用它,您可以这样做:

    export function Test() {
      console.log('hello')
    }
    

    索引.js

    import { Test } from './test.js'
    Test()
    

    然后,当您在html中加载文件时,将执行函数测试。

    <script src="index.js" type="module"></script>
    
        2
  •  -1
  •   Emre    4 年前

    实际上你可以用模块.exports和进口。它与webpack一起工作,也与vs代码一起工作