我通过执行这些操作创建了一个新的 vue 应用程序(根据 vue 文档)
npm init vue@latestnpm install然后我尝试运行 npm run dev。然后就发生了这种情况。
我的环境是这些
我的package.json
{
"name": "vue-project",
"version": "0.0.0",
"scripts": {
"dev": "vite",
"build": "vite build",
"preview": "vite preview --port 4173"
},
"dependencies": {
"vue": "^3.2.37"
},
"devDependencies": {
"@vitejs/plugin-vue": "^3.0.1",
"vite": "^3.0.4"
}
}
我的 vite.config.js
import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [vue()],
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url))
}
}
})
我已经搜索了一段时间但没有结果。提前致谢。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
我这里也有同样的问题。看起来输出会针对浏览器执行进行优化,并且浏览器不存在诸如“path、fs 等”之类的模块。这是有道理的,因为它是 Nodejs 本身的一部分。它无法在浏览器中运行。到目前为止,这是我的假设。
查看各种解决方案以了解我为何做出这些假设。
https://github.com/vitejs/vite/discussions/6849 https://github.com/vitejs/vite/issues/7821#issuecomment- 1142328698
https://github.com/marcofugaro/browserslist-to-esbuild https://esbuild.github.io/getting-started/
鉴于这些信息,我更喜欢一个更简单的解决方案来防止使用 Vite 作为捆绑器构建失败。
配置 rollupOptions
我认为最简单的解决方案是定义外部。 https://rollupjs.org/configuration-options/#external
import { resolve } from 'path'; import { defineConfig } from 'vite'; export default defineConfig({ plugins: [], build: { lib: { entry: resolve(__dirname, 'src/index.ts'), name: 'myLib', fileName: 'myLib', }, rollupOptions: { external: [/^node:\w+/], // <-- ignores all 'node:*' }, }, });终于找到解决办法了。 问题是由于 package.json 文件冲突造成的。 Vite 使用了位于项目父目录中的错误 package.json 文件,而不是项目自己的 package.json 文件。就像这样 - p>
所以删除错误的文件,问题就会得到解决。
感谢这个github问题的回答 package.json:1:0: 错误:文件意外结束