英文:
How to solve error "Big integer literals are not available in the configured target environment" on vite?
问题
这是您提供的错误信息的翻译:
✘ [错误] 大整数字面量在配置的目标环境 ("chrome87", "edge88", "es2019", "firefox78", "safari13.1") 中不可用
node_modules/bigint-mod-arith/dist/esm/index.browser.js:231:16:
231 │ e = e / 2n;
╵ ~~✘ [错误] 大整数字面量在配置的目标环境 ("chrome87", "edge88", "es2019", "firefox78", "safari13.1") 中不可用
node_modules/bigint-mod-arith/dist/esm/index.browser.js:232:17:
232 │ b = b ** 2n % n;
╵ ~~7:04:56 AM [vite] 在更新依赖项时发生错误:错误:构建失败,有 68 个错误:
node_modules/bigint-mod-arith/dist/esm/index.browser.js:21:14: 错误:
大整数字面量在配置的目标环境 ("chrome87", "edge88", "es2019", "firefox78", "safari13.1") 中不可用
node_modules/bigint-mod-arith/dist/esm/index.browser.js:27:20:
错误:
大整数字面量在配置的目标环境 ("chrome87", "edge88", "es2019", "firefox78", "safari13.1") 中不可用
node_modules/bigint-mod-arith/dist/esm/index.browser.js:27:26: 错误:
大整数字面量在配置的目标环境 ("chrome87", "edge88", "es2019", "firefox78", "safari13.1") 中不可用
node_modules/bigint-mod-arith/dist/esm/index.browser.js:47:13: 错误:
大整数字面量在配置的目标环境 ("chrome87", "edge88", "es2019", "firefox78", "safari13.1") 中不可用
node_modules/bigint-mod-arith/dist/esm/index.browser.js:47:24: 错误:
大整数字面量在配置的目标环境 ("chrome87", "edge88", "es2019", "firefox78", "safari13.1") ...
您尝试删除 node_modules 和 pnpm-lock-yaml,然后重新安装它们,但问题仍然存在。
英文:
I am using vite, react and typescript then i got this error, anyone knows how to solve it ?
Here is my package.json:
{
"name": "",
"private": true,
"version": "0.0.0",
"scripts": {
"dev": "vite",
"build": "tsc && vite build",
"preview": "vite preview"
},
"dependencies": {
"@apollo/client": "^3.7.9",
"@composedb/cli": "^0.3.1",
"@composedb/client": "^0.3.1",
"@didtools/pkh-ethereum": "^0.0.3",
"@emotion/react": "^11.9.0",
"@emotion/styled": "^11.8.1",
"@mui/icons-material": "^5.8.4",
"@mui/material": "^5.8.2",
"@mui/x-date-pickers": "^5.0.0-alpha.5",
"cytoscape": "^3.22.1",
"date-fns": "^2.28.0",
"did-session": "^1.0.0",
"graphql": "^16.6.0",
"graphql-tag": "^2.12.6",
"moment": "^2.29.4",
"react": "^18.0.0",
"react-dom": "^18.0.0",
"react-router-dom": "^6.3.0",
"web3": "^1.8.2"
},
"devDependencies": {
"@types/cytoscape": "^3.19.6",
"@types/react": "^18.0.0",
"@types/react-dom": "^18.0.0",
"@vitejs/plugin-react": "^1.3.0",
"axios": "^0.27.2",
"typescript": "^4.6.3",
"vite": "^2.9.9"
}
}
Logs:
> ✘ [ERROR] Big integer literals are not available in the configured target environment ("chrome87", "edge88", "es2019", "firefox78", "safari13.1")
>
> node_modules/bigint-mod-arith/dist/esm/index.browser.js:231:16:
> 231 │ e = e / 2n;
> ╵ ~~
>
> ✘ [ERROR] Big integer literals are not available in the configured target environment ("chrome87", "edge88", "es2019", "firefox78", "safari13.1")
>
> node_modules/bigint-mod-arith/dist/esm/index.browser.js:232:17:
> 232 │ b = b ** 2n % n;
> ╵ ~~
>
> 7:04:56 AM [vite] error while updating dependencies: Error: Build failed with 68 errors:
> node_modules/bigint-mod-arith/dist/esm/index.browser.js:21:14: ERROR:
> Big integer literals are not available in the configured target environment ("chrome87", "edge88", "es2019", "firefox78", "safari13.1")
> node_modules/bigint-mod-arith/dist/esm/index.browser.js:27:20:
> ERROR:
> Big integer literals are not available in the configured target environment ("chrome87", "edge88", "es2019", "firefox78", "safari13.1")
> node_modules/bigint-mod-arith/dist/esm/index.browser.js:27:26: ERROR:
> Big integer literals are not available in the configured target environment ("chrome87", "edge88", "es2019", "firefox78", "safari13.1")
> node_modules/bigint-mod-arith/dist/esm/index.browser.js:47:13: ERROR:
> Big integer literals are not available in the configured target environment ("chrome87", "edge88", "es2019", "firefox78", "safari13.1")
> node_modules/bigint-mod-arith/dist/esm/index.browser.js:47:24: ERROR:
> Big integer literals are not available in the configured target environment ("chrome87", "edge88", "es2019", "firefox78", "safari13.1") ...
> at failureErrorWithLog
> [...]
I tried, deleting node_modules and pnpm-lock-yaml and reinstalling them but the problem is still there.
答案1
得分: 6
我在 vite 3.2.x 和 4.1.x(使用 Svelte 而不是 React,但应该也适用)中解决了这个问题,通过定义以下 vite 配置选项:
optimizeDeps.esbuildOptions.target
optimizeDeps.global
optimizeDeps.esbuildOptions.supported.bigint
build.target
import { defineConfig } from "vite";
// 导入 React、Svelte 和其他需要的内容...
// https://vitejs.dev/config/
export default ({ mode }) => {
return defineConfig({
optimizeDeps: { // 优化依赖项
esbuildOptions: {
target: "esnext",
// 从 Node.js 全局到浏览器的 globalThis
define: {
global: 'globalThis'
},
supported: {
bigint: true
},
}
},
build: {
target: ["esnext"], // 构建目标
},
})
}
英文:
I solved it on vite 3.2.x and 4.1.x (with Svelte instead of React, but it should work) by defining the following vite config's options:
optimizeDeps.esbuildOptions.target
optimizeDeps.global
optimizeDeps.esbuildOptions.supported.bigint
build.target
import { defineConfig } from "vite";
// import react, svelte and other needs...
// https://vitejs.dev/config/
export default ({ mode }) => {
return defineConfig({
optimizeDeps: { // 👈 optimizedeps
esbuildOptions: {
target: "esnext",
// Node.js global to browser globalThis
define: {
global: 'globalThis'
},
supported: {
bigint: true
},
}
},
build: {
target: ["esnext"], // 👈 build.target
},
})
}
答案2
得分: 3
vite.config.ts
export default defineConfig({
// ...
build: {
target: 'esnext', // 你也可以在这里使用 'es2020'
},
optimizeDeps: {
esbuildOptions: {
target: 'esnext', // 你也可以在这里使用 'es2020'
},
},
})
Also, make sure your Typescript target is high enough:
tsconfig.json
"compilerOptions": {
"target": "ES2020", // 你也可以使用更高的值
// ...
}
英文:
Simplified the @flydev answer a bit:
vite.config.ts
export default defineConfig({
// ...
build: {
target: 'esnext', // you can also use 'es2020' here
},
optimizeDeps: {
esbuildOptions: {
target: 'esnext', // you can also use 'es2020' here
},
},
})
Also, make sure your Typescript target is high enough:
tsconfig.json
"compilerOptions": {
"target": "ES2020", // you can also use higher value
// ...
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论