javascript - Webpack 无法正确解析 json 文件
问题描述
我在 Vue 页面中定义了以下方法:
getIsoCountryCode: function(country){
console.log(countries);
return "flag-icon-" + countries.getAlpha2Code(country, 'en');
}
该函数返回flag-icon-undefined
,即使当我在 Vue/Webpack 环境之外对其进行测试时它仍然有效。
网络包配置:
const { VueLoaderPlugin } = require("vue-loader");
const path = require("path");
module.exports = {
entry: "./lib/team-page/team.js",
devtool: "source-map",
watch: true,
resolve: {
alias: {
flag_icon_css: __dirname + "/node_modules/flag-icon-css/css/flag-icon.css"
}
},
output: {
path: path.resolve(__dirname, "public/lib"),
filename: "team.js"
},
mode: "development",
module: {
rules: [{
type: 'javascript/auto',
test: /\.(json|html)/,
exclude: /(node_modules|bower_components)/,
use: [{
loader: 'file-loader',
options: { name: '[name].[ext]' },
}]
},
{
test: /\.vue$/,
loader: "vue-loader"
},
{
test: /\.scss$/,
use: [
{loader: "style-loader"},
{
loader: "css-loader"
},
{
loader: "sass-loader"
}
]
},
{
test: /\.css$/,
use: [
{loader: "style-loader"},
{
loader: "css-loader"
}
]
},
{
test: /\.js$/,
loader: "babel-loader"
},
{
test: /\.svg$/,
loader: 'file-loader',
options: {
name: '../assets/flags/[name].[ext]'
}
}
]
},
plugins: [new VueLoaderPlugin()]
};
我检查了调试器,在 Webpack 编译的文件中找到了这段代码:
var codes = __webpack_require__(/*! ./codes.json */ "./node_modules/i18n-iso-countries/codes.json");
它仍然指向该node_modules
文件夹,即使我预计它会在捆绑包中。(编辑:这似乎无关紧要,axios 的定义方式相同,并且按预期工作。)
我将此处建议的规则添加到我的配置文件中,但它仍然不起作用。
编辑:要让它工作,你必须先注册语言环境。对于英语:countries.registerLocale(require("i18n-iso-countries/langs/en.json"));
解决方案
推荐阅读
- reactive-programming - 无限反应器流的动态合并
- sql-server - 通过 try..catch 在游标中使用事务
- django - 使用模型 slug 将 django url 与视图匹配
- discord.js - 获取机器人自己的消息
- go - GO 在测试设置方法中附加标准输入
- python - Plotly - 将反向条形图添加到现有的正常图
- javascript - 如何从二维数组中提取多列?
- excel - 从用户窗体 VBA 编辑时维护编辑历史记录
- linux - Bash:使用 systemd 的日期时代
- spring-boot - Angular 9 - 如何正确编码+登录URL参数