我正在尝试创建一个AWS Lambda Node 8应用程序。我知道您不应该尝试在Lambda上进行npm安装,而是上载包含脚本和node_modules文件夹的zip文件。但是,该zip超过7MB,其中包含很多我不希望运行的死代码(例如node_modules\node-sass\src
包含大量的c ++文件,我认为这些文件不会通过node调用吗? )。
我知道7MB并不是“大”的,但这只是一个示例应用程序,用于测试使用Lambda的水域,我想弄清楚这些概念:)。另外,为避免混淆:应用程序是即时编译sass的,所以我正在尝试部署libsass / nodesass。我知道这通常只是一个构建时工具!
我尝试使用backpack捆绑我的脚本,因为它声称创建了一个main.js文件。它确实创建了一个包含大量外部代码的文件,这些文件看起来类似于node_modules中的代码,但是在干净的文件夹中运行时不起作用。
Error: Cannot find module 'fs-extra'
at Function.Module._resolveFilename (module.js:547:15)
at Function.Module._load (module.js:474:25)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)
at Object.module.exports.exports.__esModule (C:\Dev\fsdf\sass-compiler\main.js:3192:18)
at __webpack_require__ (C:\Dev\fsdf\sass-compiler\main.js:21:30)
at Object.<anonymous> (C:\Dev\fsdf\sass-compiler\main.js:7837:16)
at __webpack_require__ (C:\Dev\fsdf\sass-compiler\main.js:21:30)
at Object.module.exports.Object.defineProperty.value (C:\Dev\fsdf\sass-compiler\main.js:7820:18)
at __webpack_require__ (C:\Dev\fsdf\sass-compiler\main.js:21:30)
使它起作用的唯一方法是使用zip压缩整个node_modules文件夹和main.js文件。但是,由于main.js比我的3KB源代码大得多,因此产生了8MB的zip!
我错过了什么吗,还是无法避免压缩node_modules?我的理论是,由于Webpack不需要浏览器中的node_modules,因此应该可行。