使用import语句在dev环境中运行良好,但在prod中会中断
我正在开发一个由许多其他存储库组成的单存储库。
我在React中有一个类似于这样的懒惰加载程序函数:
const lazilyLoadLocale = async (locale: Locale): Promise<Locales> => {
if (localeMap[locale]) return localeMap[locale] as Locales
return import(`./${locale}.json`)
.then((data) => {
localeMap[locale] = { ...data }
return data.default as Locales
})
.catch((err) => {
console.error(`Unable to load locale - ${locale}. Error: ${err.message}`)
return english
})
}
该函数在dev中按预期工作,但由于我使用导入,并且当与同时构建的所有其他应用程序绑定时,所有应用程序似乎都遵循模块类型
commonjs
。
当我尝试运行构建的捆绑包时,我在控制台中收到以下错误:
caught SyntaxError: Cannot use 'import.meta' outside a module (at runtime.js:1:2637)
请注意,我无法添加
type: 'module'
在package.json中,因为我无法访问它,它对所有文件都很常见。我能利用的是
babelrc
和
webpack config
。