Webpack模块解析失败(.po)

时间:2018-11-19 07:58:05

标签: webpack webpack-dev-server webpack-loader

我在使用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文件在其中) enter image description here

然后我在解析时遇到此错误(请参阅下面的Webpack配置文件,其中我在加载器中有 po加载器

为什么?

enter image description here

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'
      },
    ],
  },
...

谢谢!

1 个答案:

答案 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'
        }]
      }
    ]