uni-app Error: module 'common/vendor.js' is not defined, require args is '../../common/vendor.js'
uni-app Error: module ‘common/vendor.js’ is not defined, require args is ‘…/…/common/vendor.js’
在uni-app开发中遇到模块加载错误,特别是关于路径解析的问题,通常是由于文件路径不正确或文件本身不存在引起的。针对您提到的错误 uni-app Error: module 'common/vendor.js' is not defined, require args is '../../common/vendor.js'
,我们可以从以下几个方面进行排查和解决。
1. 检查文件路径
首先确认 vendor.js
文件是否存在于项目的正确位置。根据您提供的路径 ../../common/vendor.js
,这意味着代码尝试从当前文件的上级目录的上级目录中的 common
文件夹加载 vendor.js
。请确保这个路径相对于当前文件是正确的。
2. 示例代码路径调整
假设您的项目结构如下:
project-root/
│
├── pages/
│ └── index/
│ └── index.vue
│
└── common/
└── vendor.js
如果错误发生在 index.vue
文件中,并且您尝试这样引入 vendor.js
:
// 错误的引入方式(假设这是导致错误的代码)
const vendor = require('../../common/vendor.js');
实际上,根据上面的项目结构,正确的路径应该是(因为 index.vue
已经在 pages/index/
下,不需要两级上溯):
// 正确的引入方式
const vendor = require('../../../common/vendor.js'); // 三级上溯到project-root,再进入common
或者,如果 vendor.js
是全局或通用脚本,您可能需要考虑将其放置在项目的根目录或通过构建工具(如webpack)配置为全局可访问。
3. 使用绝对路径(相对uni-app的特性)
在uni-app中,推荐使用基于 @
符号的绝对路径(需要在 vue.config.js
或相关配置中设置别名),这样可以避免路径错误:
// 在vue.config.js中设置别名
module.exports = {
configureWebpack: {
resolve: {
alias: {
'@': path.resolve(__dirname, 'src')
}
}
}
};
// 然后在代码中使用
const vendor = require('@/common/vendor.js'); // 假设common在src目录下
4. 检查构建配置
确保您的构建配置(如 webpack
或 vite
配置)没有错误地排除了 vendor.js
文件。
通过上述步骤,您应该能够定位并解决 module 'common/vendor.js' is not defined
的问题。如果问题依旧存在,请检查是否有其他配置或代码错误影响了模块解析。