我正在尝试使用stdlib-js和svelte作为辅助学习项目,为某些基本工程计算开发一个非常简单的浏览器应用程序。不幸的是,由于无法将stdlib-js导入到svelte应用程序中,所以我一开始就陷入了困境。
首先,为简单起见,我已在本地将可分发的stdlib-js(stdlib-flat.min.js)捆绑包下载到与App.svelte和main.js相同的目录中。
然后,我制作了最简单的脚本来测试是否正确导入了库。
这是我拥有的 App.svelte :
<script>
import * as stdlib from './stdlib-flat.min.js';
var exp = stdlib.base.exp;
var result = exp(.5);
</script>
<style>
h1 {
color: purple;
}
</style>
<h1>The result is {result}!</h1>
然后,受问题Import javascript file in svelte的启发,我将 main.js 修改为如下形式:
import App from './App.svelte';
import './stdlib-flat.min.js';
const app = new App({
target: document.body,
props: {
name: 'world'
}
});
export default app;
这时,出现以下错误:
(!) Missing exports
https://rollupjs.org/guide/en/#error-name-is-not-exported-by-module
src/App.svelte
base is not exported by src/stdlib-flat.min.js
54:
55: function instance($$self) {
56: var exp = stdlib.base.exp;
^
57: var result = exp(.5);
而且,由于无法定义 exp ,因此浏览器会抛出此错误:
TypeError: exp is not a function App.svelte:4:18
instance App.svelte:4
init index.mjs:1259
App bundle.js:317
app main.js:4
<anonymous> bundle.js:330
要检查stdlib-js是否在我加载的浏览器中正常运行:
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>stdlib-js test</title>
</head>
<body>
<script type="text/javascript" src="./stdlib-flat.min.js"></script>
<script type="text/javascript">
// `stdlib` is a global variable...
var exp = stdlib.base.exp;
console.log( exp( 0.5 ) );
</script>
</body>
</html>
确实如此。
我想念什么吗?是否需要修改stdlib-js才能导出其功能?
预先感谢您的帮助和耐心。