首页 > 解决方案 > 如何使用 svelte 导入 lodash?

问题描述

我只是想导入 lodash import _ from 'lodash';,并且一直出现以下错误:

rollup v2.23.0
bundles src/main.js → public\build\bundle.js...
[!] (plugin commonjs) SyntaxError: Unexpected token (434:48) in C:\my-svelte\node_modules\lodash\lodash.js
node_modules\lodash\lodash.js (434:48)
432:
433:   /** Detect free variable `process` from Node.js. */
434:   var freeProcess = moduleExports && freeGlobal.process;
                                                     ^
435:
436:   /** Used to access faster Node.js helpers. */
SyntaxError: Unexpected token (434:48) in C:\my-svelte\node_modules\lodash\lodash.js
    at Object.pp$4.raise (C:\my-svelte\node_modules\rollup\dist\shared\rollup.js:15135:13)
    at Object.pp.unexpected (C:\my-svelte\node_modules\rollup\dist\shared\rollup.js:12906:8)
    at Object.pp$3.parseIdent (C:\my-svelte\node_modules\rollup\dist\shared\rollup.js:15086:10)
    at Object.parseIdent (C:\my-svelte\node_modules\rollup\dist\shared\rollup.js:18737:27)
    at Object.parseIdent (C:\my-svelte\node_modules\rollup\dist\shared\rollup.js:18969:27)
    at Object.pp$3.parseSubscript (C:\my-svelte\node_modules\rollup\dist\shared\rollup.js:14380:62)
    at Object.parseSubscript (C:\my-svelte\node_modules\rollup\dist\shared\rollup.js:18640:37)
    at Object.pp$3.parseSubscripts (C:\my-svelte\node_modules\rollup\dist\shared\rollup.js:14355:24)
    at Object.pp$3.parseExprSubscripts (C:\my-svelte\node_modules\rollup\dist\shared\rollup.js:14340:21)
    at Object.pp$3.parseMaybeUnary (C:\my-svelte\node_modules\rollup\dist\shared\rollup.js:14314:17)

我曾经npx degit sveltejs/template my-svelte创建应用程序。

我也试过lodash-es了,同样的事情:[!] (plugin commonjs) SyntaxError: Unexpected token (13:46) in C:\my-svelte\node_modules\lodash-es_nodeUtil.js

这绝对是一个与 lodash 相关的问题,特别是与第 434 行有关。我尝试导入的其他所有内容都可以正常工作:

import {v4} from 'uuid';
import {Subject} from "rxjs";
import ReconnectingWebSocket from 'reconnecting-websocket';
...

编辑:问题是由import replace from '@rollup/plugin-replace';in rollup.config.js:(

现在我需要弄清楚如何在没有@rollup/plugin-replace...的情况下将 .env 变量导入 Svelte

标签: lodashsvelterollupjs

解决方案


我使用lodash-es并且工作正常。我什至可以很好地摇晃树木。

<script>
    import { upperCase } from 'lodash-es';
    export let name;
</script>

<p>{upperCase(name)}</p>

推荐阅读