【问题标题】:Can't import aws-sdk using webpack, and npm installed aws-sdk无法使用 webpack 导入 aws-sdk,并且 npm 安装了 aws-sdk
【发布时间】:2018-12-01 08:19:31
【问题描述】:

我在导入 aws-sdk(或使用 webpack 构建它)时遇到问题

我的代码是

var config = require('./config')
var AWS = require('aws-sdk');
AWS.config.region = config.region;

这会导致以下构建错误:

错误 ./node_modules/aws-sdk/apis/cognito-identity-2014-06-30.min.json 模块解析失败:JSON 中位置 0 的意外标记 m 而 在 'module.exports = {"v...' 附近解析你可能需要一个合适的 loader 来处理这种文件类型。

很多次。

如果我使用代码

var config = require('./config')
var AWS = require('aws-sdk/dist/aws-sdk');
AWS.config.region = config.region;

我得到一个控制台错误

未捕获的类型错误:无法设置未定义的属性“区域”

我的 webpack 文件是:

module.exports = { 
  entry: 'entry.js',
  // Place output files in `./dist/my-app.js`
  output: {
    path: __dirname + '/dist',
    filename: 'my-app.js'
  },  
  resolve: {.
      extensions: [ '.js', '.json', '.jsx'].
  },  
  module: {
    rules: [
      {   
        test: /\.json$/,
        loader: 'json-loader'
      }   
    ]   
  }
};

我的 package.json 是:

{
  "private": true,
  "dependencies": {
    "amazon-cognito-identity-js": "^2.0.9",
    "aws-sdk": "^2.261.1",
    "crypto-browserify": "^3.12.0",
    "js-cookie": "^2.2.0",
    "webpack-dev-server": "^3.1.4"
  },
  "devDependencies": {
    "json-loader": "^0.5.7",
    "webpack": "^4.12.0",
    "webpack-cli": "^3.0.8"
  },
  "scripts": {
    "build": "webpack --mode development",
    "serve": "webpack-dev-server --mode development --port 3000"
  }
} 

【问题讨论】:

    标签: node.js amazon-web-services webpack aws-sdk


    【解决方案1】:

    目前 Webpack 存在一个未解决的问题:https://github.com/webpack/webpack/issues/7082

    type: 'javascript/auto'添加到您的Webpack配置中以获取json文件暂时可以解决它:

      {
        type: 'javascript/auto',
        test: /\.json$/,
        use: 'json-loader'
      },
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-28
      • 1970-01-01
      • 2016-01-21
      • 1970-01-01
      • 2018-12-20
      相关资源
      最近更新 更多