svelte导入stdlib.js

时间:2019-09-06 14:47:51

标签: svelte

我正在尝试使用stdlib-jssvelte作为辅助学习项目,为某些基本工程计算开发一个非常简单的浏览器应用程序。不幸的是,由于无法将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才能导出其功能?

预先感谢您的帮助和耐心。

0 个答案:

没有答案