uni-app Error: module 'common/vendor.js' is not defined, require args is '../../common/vendor.js'

发布于 1周前 作者 yibo5220 来自 Uni-App

uni-app Error: module ‘common/vendor.js’ is not defined, require args is ‘…/…/common/vendor.js’

1 回复

在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. 检查构建配置

确保您的构建配置(如 webpackvite 配置)没有错误地排除了 vendor.js 文件。

通过上述步骤,您应该能够定位并解决 module 'common/vendor.js' is not defined 的问题。如果问题依旧存在,请检查是否有其他配置或代码错误影响了模块解析。

回到顶部