Require 的参数用字面量和变量 编译的时候有区别？

gypay
Tue, 08 Nov 2016 16:47:36 +0000

文件夹ab中有两个文件a.js b.js
文件夹c中有一个文件c.js

在a.js中通过模块c的方法调用模块b，用变量当参数无法编译

文件 ab/a.js

let a = {
    init: function() {
        let c = require('../c/c');
        c.getB(); //在模块c中的调用会有问题
    }
}
module.exports = a;

文件 ab/b.js

let b = {}
module.exports = b;

文件 c/c.js

let c = {
    getB() {
        let path = '../ab/b';
        let b = require(path); // 错误，找不到模块 ../ab/b

        // ----- 下面可以
        let b = require('../ab/b'); // 可以编译通过
    }
}
module.exports = c;

阅读整个主题