Javascript Vue.js-连接

Javascript Vue.js-连接,javascript,laravel,vue.js,vuejs2,require,Javascript,Laravel,Vue.js,Vuejs2,Require,我有一个很奇怪的问题 以下所有代码都工作正常: payload.modules.forEach(function(mod) { var modules_path = '../../modules/'; // Routes router.addRoutes(require('../../modules/'+mod.module_id+'/routes.js')); // Store store.regist

我有一个很奇怪的问题

以下所有代码都工作正常:

    payload.modules.forEach(function(mod) {

        var modules_path = '../../modules/';

        // Routes
        router.addRoutes(require('../../modules/'+mod.module_id+'/routes.js'));
        // Store
        store.registerModule(['modules', mod.module_id],
    require('../../modules/'+mod.module_id+'/store.js').default);

    });
但是当我将modules\u path变量用于我的需求时,如下所示:

    payload.modules.forEach(function(mod) {

        var modules_path = '../../modules/';

        // Routes
        router.addRoutes(require(modules_path+mod.module_id+'/routes.js'));
        // Store
        store.registerModule(['modules', mod.module_id],
    require('../../modules/'+mod.module_id+'/store.js').default);

    });
目前,这是行不通的。 什么能解释这一点?
这对我来说似乎是一样的

谢谢你的帮助:)


编辑:

        var modules_path = '../../modules/clients/routes.js';

        // Routes
        router.addRoutes(require(modules_path));

同样的道理。模块路径的类型为字符串。

您可以尝试将
.toString()
添加到
mod.module\u id
modules\u path.concat(mod.module\u id.toString().concat('/routes.js')

mod.module\u id的数据类型是什么?我不确定为什么会发生这种情况,但您可以查看常用文件夹。这与:var modules\u path='../../modules/clients/routes.js'相同;//Routes router.addRoutes(需要(模块_路径));模块的类型\u路径自然是字符串。我还想问,为什么要加载这样的文件,而不是使用laravel mix?因为这是一个动态的模块化应用程序,在loginI好奇的时候加载用户的模块,为什么
.concat()
工作而
+
不工作?我猜与变量类型有关,但是+应该工作,无论类型如何