Javascript es6:动态导入和模板字符串
在使用import()动态加载模块时,似乎不允许使用模板字符串: 同样适用于Literal string:Javascript es6:动态导入和模板字符串,javascript,webpack,es6-modules,ecmascript-next,Javascript,Webpack,Es6 Modules,Ecmascript Next,在使用import()动态加载模块时,似乎不允许使用模板字符串: 同样适用于Literal string: import('modules/myModule').then(module => ...) 有没有一种方法可以在es6中使用模板字符串实现动态加载 //更新 但这似乎更为棘手: 这项工作: import(/* webpackChunkName: "[request]" */ ../pages/${route.componentPath}`) // componentPath =
import('modules/myModule').then(module => ...)
有没有一种方法可以在es6中使用模板字符串实现动态加载
//更新
但这似乎更为棘手:
这项工作:
import(/* webpackChunkName: "[request]" */ ../pages/${route.componentPath}`)
// componentPath = 'MyModule'
这并不是:
import(/* webpackChunkName: "[request]" */ `${route.componentPath}`)
// componentPath = '../pages/MyModule'
我正在使用react路由器的create react应用程序配置。动态导入不是ES6的一部分。这与模板字符串无关,模板字符串只是一种语法上的便利。无论您使用的是模板字符串、字符串连接还是常量,代码都将正常工作。请告诉我们有关可能导致“找不到模块”错误的设置的更多信息。是的,根据文档:“import()接受任意字符串(此处显示运行时确定的模板字符串),而不仅仅是静态字符串文字”。这是一个bug吗?可能不是模板字符串本身,而是对其中表达式的求值。不,我很确定表达式的求值很好。是的,它看起来像一个bug,但由于您仍然没有告诉我们您的设置/环境(JS engine?Transpiler?Loader?),我不能说是哪个产品。
import(/* webpackChunkName: "[request]" */ `${route.componentPath}`)
// componentPath = '../pages/MyModule'