Javascript 仅在生产中动态导入文件以产生副作用
我正在尝试将Chromium部署到具有无服务器的Lambda 我使用的是Javascript 仅在生产中动态导入文件以产生副作用,javascript,node.js,webpack,aws-lambda,Javascript,Node.js,Webpack,Aws Lambda,我正在尝试将Chromium部署到具有无服务器的Lambda 我使用的是chrome aws lambda库,它希望压缩的可执行文件位于: node_模块/chrome aws lambda/bin 因此,在我的Web包配置中,我测试.br文件并保留它们的相对路径 module: { rules: [ ... { test: /\.br$/, use: [{ loader: 'file-loader', option
chrome aws lambda
库,它希望压缩的可执行文件位于:
node_模块/chrome aws lambda/bin
因此,在我的Web包配置中,我测试.br
文件并保留它们的相对路径
module: {
rules: [
...
{
test: /\.br$/,
use: [{ loader: 'file-loader', options: { name: '[path][name].[ext]' } }],
},
],
},
在顶部的PDF服务中,我导入了可执行文件,以防它们被Webpack获取
导入'chrome-aws-lambda/bin/aws.tar.br';
进口“chrome aws lambda/bin/chromium.br”;
输入'chrome aws lambda/bin/swiftshader.tar.br';
当部署到Lambda时,这将正常工作。问题是本地的,Webpack无法加载压缩文件:
[
'C:\\Users\\dev_machine\\client\\project\\node_modules\\chrome-aws-lambda\\bin\\aws.tar.br:1',
'��MA�A|���]!iC��B�kf\u001c��T@જ�h�\u0001E��r�&�:⛻�\u0014���~�F��G����\u0013����/�\u0014c;\u0016!.\u000eTP %i�u�f��~5�\b`ߝ~%<������He��\t\u0013S�D#�f���FQė�������������������������⌂���m�⌂�s���9�ީ\f��\u0014fh"��\u0014�b��',
'',
'',
'SyntaxError: Invalid or unexpected token',
'at wrapSafe (internal/modules/cjs/loader.js:1053:16)',
'at Module._compile (internal/modules/cjs/loader.js:1101:27)',
'at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)',
'at Module.load (internal/modules/cjs/loader.js:985:32)',
'at Function.Module._load (internal/modules/cjs/loader.js:878:14)',
'at Module.require (internal/modules/cjs/loader.js:1025:19)',
'at require (internal/modules/cjs/helpers.js:72:18)',
'at Object.chrome-aws-lambda/bin/aws.tar.br (C:\\Users\\dev_machine\\client\\project\\.webpack\\service\\webpack:\\external "chrome-aws-lambda\\bin\\aws.tar.br":1:1)',
'at __webpack_require__ (C:\\Users\\dev_machine\\client\\project\\.webpack\\service\\webpack:\\webpack\\bootstrap:19:1)'
]
可能是因为它不是js/typescript文件
如何在本地正确加载文件或仅在本地开发之外导入文件?有一种仅用于开发的配置阻止了第一种方法的工作 删除此行并修复它:
module.exports.externals=[require('webpack-node-externals')()代码>如果您认为自己找到了解决方案,则不应将其编辑到问题中。一般来说,你应该通过提问来澄清问题,但不要在问题中包含答案。您应该使用用于解决问题的代码/解决方案创建自己的答案,然后接受它(系统可能需要48小时的延迟)。当你自己解决了这个问题。
if (process.env.NODE_ENV !== 'local') {
import('chrome-aws-lambda/bin/aws.tar.br');
import('chrome-aws-lambda/bin/chromium.br');
import('chrome-aws-lambda/bin/swiftshader.tar.br');
}
Cannot find module 'chrome-aws-lambda/bin/aws.tar.br' or its corresponding type declarations