我正在开发使用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
};
答案 0 :(得分:1)
我认为问题是babel / webpack将JSON文件视为js
尝试使用这是第一个module.rules测试键
launchUserSpecificFragment
代替test: /\.(js)$/,