Node.js crypto给出了webpack编译错误

时间:2017-08-20 08:41:15

标签: node.js webpack cryptography

我正在开发使用Node.js,react,yarn和webpack的应用程序,我对这些技术不是很有经验。

我需要使用加密,我尝试使用内置加密模块。问题是即使在我的js文件中使用简单的命令:crypto = require('crypto');,webpack编译也会失败并显示以下消息:

@ multi (webpack)-dev-server/client?http://localhost:8080 webpack/hot/dev-server ./src/index.js

ERROR in ./node_modules/parse-asn1/aesid.json
Module build failed: SyntaxError: Unexpected token, expected ; (1:25)

> 1 | {"2.16.840.1.101.3.4.1.1": "aes-128-ecb",
    |                          ^
  2 | "2.16.840.1.101.3.4.1.2": "aes-128-cbc",
  3 | "2.16.840.1.101.3.4.1.3": "aes-128-ofb",
  4 | "2.16.840.1.101.3.4.1.4": "aes-128-cfb",

我曾尝试使用其他加密库,如node-simple-encryptor和sjcl,但我总是得到同样的错误!

我猜它必须是webpack(版本3.5.2)问题,因为当我在测试javascript文件中使用相同的库并从nodejs交互式环境运行它时,它运行正常。

有人能帮助我吗?

我的webpack.config.js文件:

const path = require('path');
module.exports = {
   entry: path.resolve(__dirname, 'src', 'index.js'),
   output: {
      path: path.resolve(__dirname, 'output'),
      filename: 'bundle.js',
      publicPath: '/'
   },
   resolve: {
      extensions: ['.js', '.jsx']
   },
   module: {
      rules: [
         {
             test: /\.js/,
             use: {
                loader: 'babel-loader',
                options: { presets: ['react', 'es2015'] }
             }
         },
         {
            test: /\.scss/,
            use: ['style-loader', 'css-loader', 'sass-loader']
         }
      ]
   },
   devServer: {
     contentBase: './src',
     publicPath: '/output',
     historyApiFallback: true,
   },
   devtool: 'source-map' //Maps source files with bundle.js for debugging in the browser

};

1 个答案:

答案 0 :(得分:1)

我认为问题是babel / webpack将JSON文件视为js 尝试使用这是第一个module.rules测试键 launchUserSpecificFragment代替test: /\.(js)$/,