无法从redom库导入

时间:2017-10-29 16:37:31

标签: javascript html import es6-modules lib

我正在尝试导入redom库,但一直收到此错误:

Uncaught TypeError: Cannot read property 'nodeType' of null

我的代码如下:

<!DOCTYPE html>
<html>
<head>
    <script src='test.js'></script>
    <script src="libraries/redom.min.js" type='text/javascript'></script>
    <script>
      const { el, mount } = redom;
      const hello = el('h1', 'Hello World');
      mount(document.body, hello);
    </script>

</head>
<body>
</body>
</html>

如果我将const { el, mount } = redom;更改为import { el, mount } from 'redom',我会Uncaught SyntaxError: Unexpected token import

路径正确,redom.min.js没有损坏。

2 个答案:

答案 0 :(得分:0)

将属性type="module"添加到加载redom的脚本可能会解决问题(如果您使用最新的Chrome):

<script src="libraries/redom.min.js" type="module"></script>

然而,由于大多数浏览器不支持import语句,因此会出现异常,请参阅quote:

  

注意:此功能未在本机的任何浏览器中实现   时间。它在许多转发器中实现,例如Traceur   Compiler,Babel,Rollup或Webpack。

     

来源:import - JavaScript | MDN

答案 1 :(得分:0)

如果你想尝试ES2015,你也可以使用:

<!DOCTYPE html>
<html>
  <body>
    <script type="module">
      import { el, mount } from 'https://redom.js.org/redom.es.min.js';

      const hello = el('h1', 'Hello RE:DOM!');

      mount(document.body, hello);
    </script>
  </body>
</html>

(你需要一个现代化的浏览器,比如最新的Chrome浏览器)