Javascript 在构建时运行的加载程序或函数是否可以将静态字符串中的字符串var转换为要求()param停止在动态模式下工作?
我有以下代码:Javascript 在构建时运行的加载程序或函数是否可以将静态字符串中的字符串var转换为要求()param停止在动态模式下工作?,javascript,angularjs,node.js,webpack,commonjs,Javascript,Angularjs,Node.js,Webpack,Commonjs,我有以下代码: var m = app.getModuleMetadata(__filename); module.exports = [m.rota, { url: '/costumer/phone/listar', templateProvider: function ($q) { return $q(function (resolve) { require.ensure([], function () {
var m = app.getModuleMetadata(__filename);
module.exports = [m.rota, {
url: '/costumer/phone/listar',
templateProvider: function ($q) {
return $q(function (resolve) {
require.ensure([], function () {
resolve(require('../../template/listar.html'));
});
});
},
controller: m.controller,
resolve: {
load: [
'$q', '$ocLazyLoad', function ($q, $ocLazyLoad) {
return $q(function (resolve) {
require.ensure([], function () {
var modulo = require('../controller/listar.js');
$ocLazyLoad.load({ name: modulo.name });
resolve(modulo.controller);
});
});
}
]
}
}];
我对他有些不满,比如:
var m = app.getModuleMetadata(__filename);
module.exports = [m.rota, {
url: '/costumer/phone/listar',
templateProvider: function ($q) {
return $q(function (resolve) {
require.ensure([], function () {
resolve(require(m.templatePath));
});
});
},
controller: m.controller,
resolve: {
load: [
'$q', '$ocLazyLoad', function ($q, $ocLazyLoad) {
return $q(function (resolve) {
require.ensure([], function () {
var modulo = require(m.controllerPath);
$ocLazyLoad.load({ name: modulo.name });
resolve(modulo.controller);
});
});
}
]
}
}];
顺便说一下,网页上说:
./modules/customer/phone/js/rota/listar.js中的警告
关键依赖项:
12:24-35依赖项的请求是一个表达式
@/modules/customer/phone/js/rota/listar.js 12:24-35
这是因为require()函数在其他上下文中运行,在webpack生成上下文中运行,而不是在运行时javascript web浏览器上下文中运行
因此,require()函数需要一个静态字符串来提供预期结果
所以,我想。。。如果我创建了一个节点函数,在require()函数的相同上下文中运行,以解析字符串变量
我知道\u filename
变量位于节点上下文中,就像require()函数一样
我在一个加载器插件中找到了一些东西,但我不知道它是否有效
其他人知道如何运行一个函数,该函数在require()的相同上下文中运行,以解析(require(m.templatePath))
是否提供require参数m.templatePath
字符串值
提前谢谢