我的老板要求我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')
的用户态运行时注入不感兴趣。
答案 0 :(得分:0)
WebPack建议在import
:https://webpack.js.org/api/module-methods/
require
语法
您可以使用以下语法导入带有脚本标签的ES6模块:
<script type="module">
import {addTextToBody} from './utils.mjs';
addTextToBody('Modules are pretty cool.');
</script>
总体而言,截至目前,大多数浏览器中对ES6模块的支持不够充分或性能不足,无法证明使用单独的模块是合理的,而不是在构建过程中使用WebPack之类的工具捆绑它们。
在代码示例中使用require
的方式没有意义。 require
和import
用于将一个javascript文件或模块包含在另一个文件中。它们不用于使脚本标记的src
属性动态化。您只需要一个变量。