Ecmascript 6 Webpack-作为依赖项的外部JS/JSON文件

Ecmascript 6 Webpack-作为依赖项的外部JS/JSON文件,ecmascript-6,webpack,Ecmascript 6,Webpack,朋友们, 我试图在Webpack捆绑包中保留一个外部文件,但保留为一个依赖项—在本例中是一个设置文件。我尝试了以下几种变体- externals: { 'Settings': JSON.stringify(require('./settings.json')) }, …但Webpack一直将其包含在捆绑包中。我在文档中找到的唯一示例是常见的预设,如jQuery,除了外部文件外,没有提到本地文件。帮忙?谢谢 怎么样 // Outside of webpack context var fs =

朋友们, 我试图在Webpack捆绑包中保留一个外部文件,但保留为一个依赖项—在本例中是一个设置文件。我尝试了以下几种变体-

externals: {
  'Settings': JSON.stringify(require('./settings.json'))
},
…但Webpack一直将其包含在捆绑包中。我在文档中找到的唯一示例是常见的预设,如jQuery,除了外部文件外,没有提到本地文件。帮忙?谢谢

怎么样

// Outside of webpack context
var fs = require("fs");
var settings = JSON.parse(fs.readFileSync('./settings.json', 'utf8'));

// Within webpack context
externals: {
  'Settings': settings
}

因此,在做了大量研究之后,在编写这个答案时,获取外部文件的唯一方法是,在某种程度上忽略Webpack,只需向index.html添加另一个脚本调用。这就是我最后做的-

<body>
    <div id="whatever-app-id"></div>
    <script type="text/javascript" src="settings.js"></script>
    <script type="text/javascript" src="app.js" defer></script>
</body>

为了更好地衡量,您还可以添加webpack外部,如@gmaliar的回答中提到的,并参考settings.js文件中声明的全局对象。但是,这有点多余,因为对象是全局的


希望它对任何人都有帮助。

这有什么区别?没有。它只是将文件嵌入到网页包上下文中,完全否定了在加载时单独获取的原则。:/谢谢你的回答。我其实不明白这个问题。您需要或不需要文件。你预计会发生什么?这怎么行?