我可以导入带有<script>标签和html webpack插件的脚本吗?

时间:2019-09-11 07:22:40

标签: javascript webpack

我的老板要求我require一个脚本,但是将路径放入脚本标签,例如:

<body>
<script defer src="<%= require.resolve('foo') %>"></script>
</body>

但是,它呈现了<script defer=defer src=Kw5r>,而不是预期的<script defer=defer src="path-to-foo.js">。我可以导入这样的脚本吗?

注意:我对涉及document.createElement('script') 的用户态运行时注入不感兴趣。

1 个答案:

答案 0 :(得分:0)

  1. WebPack建议在importhttps://webpack.js.org/api/module-methods/

  2. 上使用ES6 require语法
  3. 您可以使用以下语法导入带有脚本标签的ES6模块:

    <script type="module">
      import {addTextToBody} from './utils.mjs';
    
      addTextToBody('Modules are pretty cool.');
    </script>
    
  4. 总体而言,截至目前,大多数浏览器中对ES6模块的支持不够充分或性能不足,无法证明使用单独的模块是合理的,而不是在构建过程中使用WebPack之类的工具捆绑它们。

  5. 在代码示例中使用require的方式没有意义。 requireimport用于将一个javascript文件或模块包含在另一个文件中。它们不用于使脚本标记的src属性动态化。您只需要一个变量。