我在使用webpack .po 加载程序时遇到问题。
我在做什么
** package.json **
- "json-loader": "^0.5.7",
- "po-loader": "^0.4.2",
- "po2json": "^1.0.0-alpha",
在 webpack条目文件中,我正在收集 .po 文件(以及所有其他.js,.css等)
运行 yarn build 网络包后,编译所有文件(我的.po文件在其中)
然后我在解析时遇到此错误(请参阅下面的Webpack配置文件,其中我在加载器中有 po加载器)
为什么?
在 webpack配置文件中,我有加载程序( po2json )
Webpack.config在这里
module.exports = {
devtool: 'eval',
// all different pages are defined here
entry,
output: {
path: path.join(__dirname, './webroot/dist'),
filename: '[name].js',
chunkname: '[name].js',
publicPath: 'http://localhost:80/dist/',
},
resolve: {
extensions: ['', '.webpack.js', '.web.js', '.jsx', '.js', '.po'],
},
module: {
loaders: [
{
test: /\.js(x?)$/,
exclude: /node_modules/,
loader: 'babel-loader',
},
{
test: /\.css$/,
loader: 'style!css?url=false',
},
{
test: /\.po$/,
loader: 'json!po'
},
{
test: /\.json$/,
loader: 'json-loader'
},
],
},
...
谢谢!
答案 0 :(得分:0)
我在使用webpack 4.35.3和po-loader 0.5.0时遇到了类似的问题。
我不使用json-loader
,因为对于较新的Webpack版本,这不是必需的。 Webpack现在可以“本地”加载JSON文件。
对我来说,问题是po-loader
返回了一个字符串化的JSON对象,但webpack实际上并不知道返回的输出是JSON而不是JavaScript。
在配置加载程序时将type
设置为json
可以解决此问题。
例如:
module: {
rules: [
{
test: /\.po$/,
type: "json", // This line fixes the problem
use: [{
loader: 'po-loader'
}]
}
]