2017-03-03 41 views
0

我是新来的WebPack,我有一个很难理解我怎么能访问entry添加我的JSON文件的内容和使用json-loader加载的:的WebPack无法获得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" 
     } 
    }; 
} 

请帮助我。

回答

0

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

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

import enJson from './en.json'; 

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

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