Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

vue3+vite可以正常打包,但是打开项目后报错 #24

Closed
tdw143 opened this issue Apr 18, 2022 · 25 comments
Closed

vue3+vite可以正常打包,但是打开项目后报错 #24

tdw143 opened this issue Apr 18, 2022 · 25 comments

Comments

@tdw143
Copy link

tdw143 commented Apr 18, 2022

Uncaught TypeError: Failed to resolve module specifier "vue". Relative references must start with either "/", "./", or "../".
该怎么解决。。。

@tdw143 tdw143 changed the title vue3+vite可以正常打包,打开项目后报错 vue3+vite可以正常打包,但是打开项目后报错 Apr 18, 2022
@Shimada666
Copy link
Owner

问题描述太少了,这种看起来是你们自己代码问题。能提供个最小的可复现的demo么?

@tdw143
Copy link
Author

tdw143 commented Apr 19, 2022

本地用没问题,打包也没问题,部署后打开项目就报错了,说我vue的引用路径不对,我不用这个库的时候却是好的,不知道问题出在哪里。。。

@tdw143
Copy link
Author

tdw143 commented Apr 19, 2022

微信图片_20220419184537

@Shimada666
Copy link
Owner

Uncaught TypeError: Failed to resolve module specifier "vue". Relative references must start with either "/", "./", or "../".

通过局部引入的方式是否有问题?部署又是怎么部署的呢,能提供复现问题的步骤么?

@tdw143
Copy link
Author

tdw143 commented Apr 19, 2022

局部引入时,其他页面可以正常使用,会在跳转到有引用到该组件的页面报同样的错

@Shimada666
Copy link
Owner

局部引入时,其他页面可以正常使用,会在跳转到有引用到该组件的页面报同样的错

package.json 先提供下?最好能提供下脱敏后的代码方便复现,我好排查问题

@tdw143
Copy link
Author

tdw143 commented Apr 19, 2022

package

@tdw143
Copy link
Author

tdw143 commented Apr 19, 2022

部署是通过脚本一键部署到服务器的,按理说打包没出错应该不会报错,但它就是报了。。。所以就很没有头绪(主要就是因为本地使用没问题,打包也没问题,部署到服务器后打开项目就报错)

@Shimada666
Copy link
Owner

package

文字版有么?我复制下来试下

@tdw143
Copy link
Author

tdw143 commented Apr 19, 2022

{
"version": "0.0.0",
"scripts": {
"dev": "vite --mode development",
"pro": "vite --mode production",
"devbuild": "vue-tsc --noEmit && vite build --mode development",
"probuild": "vue-tsc --noEmit && vite build --mode production",
"serve": "vite preview"
},
"dependencies": {
"@element-plus/icons": "^0.0.11",
"@element-plus/icons-vue": "^0.2.7",
"axios": "^0.24.0",
"echarts": "^5.2.2",
"element-plus": "1.3.0-beta.5",
"is-mobile": "^3.0.0",
"js-cookie": "^3.0.1",
"lodash": "^4.17.21",
"moment": "^2.29.1",
"v-code-diff": "^0.3.10",
"vue": "^3.2.21",
"vue-echarts": "^6.0.0",
"vue-router": "^4.0.12"
},
"devDependencies": {
"@types/js-cookie": "^3.0.1",
"@types/lodash": "^4.14.178",
"@types/node": "^17.0.8",
"@vitejs/plugin-vue": "^2.0.1",
"rollup-plugin-external-globals": "^0.6.1",
"sass": "^1.48.0",
"vite": "^2.7.10",
"vite-plugin-cdn-import": "0.3.5",
"vite-plugin-vue-setup-extend": "^0.4.0"
}
}

@Shimada666
Copy link
Owner

你这个 package.json 中甚至都没有装 vue-tsc,而 build 命令中却用到了 vue-tsc,这是怎么打包的?你服务器上打包 vue-tsc 用的是全局的?

@tdw143
Copy link
Author

tdw143 commented Apr 19, 2022

你这个 package.json 中甚至都没有装 vue-tsc,而 build 命令中却用到了 vue-tsc,这是怎么打包的?你服务器上打包 vue-tsc 用的是全局的?

是的全局安装的,要在里面安装吗

@Shimada666
Copy link
Owner

你这个 package.json 中甚至都没有装 vue-tsc,而 build 命令中却用到了 vue-tsc,这是怎么打包的?你服务器上打包 vue-tsc 用的是全局的?

是的全局安装的,要在里面安装吗

全局装不是一个好的方式。依赖建议放在自己 package.json 里。你这个项目看着是 ts 项目,package.json 中却缺少 vue-tsc 与 typescript 两个依赖,我很疑惑你是怎么跑起来的,你可以加入这两个依赖后再试下,ts 版本依你项目 ts 自定

    "vue-tsc": "^0.3.0",
    "typescript": "^4.4.2"

@Shimada666
Copy link
Owner

你这个 package.json 中甚至都没有装 vue-tsc,而 build 命令中却用到了 vue-tsc,这是怎么打包的?你服务器上打包 vue-tsc 用的是全局的?

是的全局安装的,要在里面安装吗

另外,你在本地上打包运行也有是有问题的么

@tdw143
Copy link
Author

tdw143 commented Apr 19, 2022

微信截图_20220419195354
试了下,还是报同样的错

@tdw143
Copy link
Author

tdw143 commented Apr 19, 2022

你这个 package.json 中甚至都没有装 vue-tsc,而 build 命令中却用到了 vue-tsc,这是怎么打包的?你服务器上打包 vue-tsc 用的是全局的?

是的全局安装的,要在里面安装吗

另外,你在本地上打包运行也有是有问题的么

就是奇怪在这里,本地没问题

@Shimada666
Copy link
Owner

微信截图_20220419195354 试了下,还是报同样的错

本地没问题,指的是 vite serve 没问题,还是 vite dev 没问题

@tdw143
Copy link
Author

tdw143 commented Apr 19, 2022

dev没问题,之前没用过serve,刚试了下也有同样的问题

@Shimada666
Copy link
Owner

dev没问题,之前没用过serve,刚试了下也有同样的问题

那只能分析具体代码了。可以把你代码发我或者给我一个可复现的仓库。我按你的package.json + 我本地的代码测试是没这个问题的。

@Shimada666
Copy link
Owner

这块初步判断是和你 vite.config.ts 中 importToCDN 冲突了,具体的还需要看下原因

@tdw143
Copy link
Author

tdw143 commented Apr 20, 2022

这块初步判断是和你 vite.config.ts 中 importToCDN 冲突了,具体的还需要看下原因

大佬,太牛了

@Shimada666
Copy link
Owner

这块初步判断是和你 vite.config.ts 中 importToCDN 冲突了,具体的还需要看下原因

大佬,太牛了

解决冲突有以下方案:

  1. 依赖中添加 vue-demi
"vue-demi": "^0.12.5",
  1. vite.config.ts 中,在 autoComplete('vue') 后添加 vue-demi 的 cdn
autoComplete('vue'), // 这后面加入 vue-demi cdn
{
   name: 'vue-demi',
   var: 'VueDemi',
   path: "dist/vue_demi.min.js"
}

参考:MMF-FE/vite-plugin-cdn-import#13

@tdw143
Copy link
Author

tdw143 commented Apr 20, 2022

大佬,再问一下,这个支持自动换行吗

@Shimada666
Copy link
Owner

大佬,再问一下,这个支持自动换行吗

还不支持...预计开发的 1.0 版本会支持,但是现在还不支持

@tdw143
Copy link
Author

tdw143 commented Apr 20, 2022

十分感谢

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants