【问题标题】:Webpack -- include configuration file as external resourceWebpack -- 包含配置文件作为外部资源
【发布时间】:2016-07-04 02:42:31
【问题描述】:

随着应用程序的增长,是时候从代码中删除硬编码的东西了。是时候实施正确的配置文件了。

我正在考虑使用 webpack,并包含配置文件,所以我可以在 react.js 应用程序中使用它。

这就是我所做的(webpack.config):

var path = require('path');
var webpack = require('webpack');
module.exports = {
entry: [
  './src/app.js'
],
output: {
  path: path.join(__dirname, 'public/js'),
  filename: 'app.built.js'
},
externals: {
  'Configurator':  require('./config/config-dev.json')
},
module: {
  loaders: [
    { test: /\.js$/, exclude: /node_modules/, loader: 'babel?presets[]=es2015&presets[]=react' },
    { test: /\.css$/, loader: "style-loader!css-loader" }
  ]
}
 };

我的 JSON 文件:

{
 "product": {
 "getProducts": "/product",
 "updateProduct": "/updateproduct",
 "deleteProduct": "/deleteproduct"
},
 "project": {
 "getProjects": "/project",
 "updateProduct": "/updateproject",
 "deleteProduct": "/deleteproject"    
}  
}

在 React 组件中的一个组件中,我尝试这样做:

var MyFile = require('Configurator');

没有错误,webpack 找到了文件。在控制台中我看到了这个:

var MyFile = __webpack_require__(412);

但 MyFile 未定义。

我做错了什么?

【问题讨论】:

  • 我认为您不想在这里使用externals。也许alias
  • 嗯...我已经检查了链接中的文档...您愿意提供一个带别名的示例吗? :)
  • 我要导入的配置文件只是 JSON,而不是 js。而且它不位于 node_modules :)

标签: javascript reactjs webpack


【解决方案1】:

require 自动解析 JSON 文件。 externals 需要一个字符串来评估,所以你需要对对象进行字符串化:

externals: {
  'Configurator': JSON.stringify(require('./config/config-dev.json'))
},

【讨论】:

  • 'Configurator': JSON.stringify(require('./config/config-dev.json')) 在一个班轮中不起作用。如果我需要 webpack.config 顶部的文件然后对其进行字符串化,那么它可以工作...
  • @wexoni 我试过了,但仍然收到错误Cannot find module 'Config'
  • @Sag1v 您将字段命名为 Config 还是 Configurator?
  • 配置(抱歉不清楚)我关注了你在这篇文章中提到的另一篇文章。 stackoverflow.com/a/30602665/3148807
  • 我知道这已经很老了,但是当我尝试这个时,JSON 没有被解析。在此处查看详细信息:stackoverflow.com/questions/65830412
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-20
  • 1970-01-01
相关资源
最近更新 更多