我一直试图控制进口和出口,以便减少我的JS应用程序。我试过加入这些Mozilla和this Stack Overflow examples但没有任何运气。 It looks like Chrome should support this now。我不确定我做错了什么。
我在export.js中有这样的函数:
export crossingover() {
dynamicText.setText('Some text');
canvas.renderAll();
}
我在我的主app.js文件中导入上面的内容,原始函数是:
import { crossingover } from 'export';
在我的index.html文件中,我有两个脚本标记:
<script src="app.js"></script>
<script type="module" src="export.js"></script>
在我看来,结果应该与原始函数相同,其中导入现在位于app.js中,但它会破坏应用程序。我错过了什么?
我在检查应用程序时遇到这两个错误:
Uncaught SyntaxError: Unexpected token {
index.html:1 Access to Script at 'file:///myappdirectory/export.js' from origin 'null' has been blocked by CORS policy: Invalid response. Origin 'null' is therefore not allowed access.
答案 0 :(得分:1)
首先,您的导入路径必须是路径式的:
import { crossingover } from './export.js';
然后您只需要app.js
的脚本标记,这应该是module
类型:
<script type="module" src="app.js"></script>
最后,导出的语法必须是:
export function crossingover() {
[...]
更新
我没有意识到的另一件事 - 在您更新的答案中,您显示的是来自file:///
网址。浏览器中的安全设置可能不允许从文件URL加载JS模块 - 而是run a local web server并在Web浏览器中加载。