Webpack无法获取json文件

时间:2017-03-03 17:04:52

标签: json webpack

我是Webpack的新手,我很难理解如何访问entry中添加并使用json-loader加载的json文件的内容:

entry :
  en: {
    `${config.basePaths.tmp}script.js`,
    `${config.basePaths.tmp}en.json`
  }
},
output: {
  publicPath: '/js/',
  path: `${config.paths.scripts.dist}`,
  filename: `[name].script.js`
},
module: {
  loaders: [
    {
      test: /\.js$/,
      exclude: /(node_modules|bower_components)/,
      loader: 'babel-loader',
      query: {
        presets: ['es2015']
      }
    },
    {
      test: /\.coffee$/,
      loader: 'coffee-loader'
    },
    {
      test: /\.json$/,
      loader: 'json-loader'
    }
  ]
}

该对象被添加到我的输出文件(en.script.js)中,但我不知道如何访问它...它看起来像这样:

function(module, exports) {

    module.exports = {
        "en": {
            "title": "I love webpack",
            "something": "else"
        }
    };
}

请帮帮我。

1 个答案:

答案 0 :(得分:0)

您不应该将JSON文件作为入口点。入口点应该是您应用的起点,如果您为每个入口点指定多个文件,它只是将它们包含在同一个捆绑中,但它们并不真正相互影响(请参阅{ {3}})。

使用webpack,您可以导入非JavaScript的文件,例如.json,如果您有适当的加载程序,它会将其转换为有效的JavaScript,您可以像导入的任何其他JavaScript一样使用它。因此,在script.js(您的入口点)中,您可以使用以下内容导入JSON:

import enJson from './en.json';

现在您可以根据需要使用enJson,其中包含en.json的JavaScript表示形式。顺便说一句,从你的条目中删除它,因为webpack将通过查看从你的入口点(及其所有依赖项)导入的内容来确定使用哪些文件。

entry : {
  en: `${config.basePaths.tmp}script.js`,
},