如何解决在使用serverless-webpack的无服务器部署期间使用现有的node_modules
我正在使用serverless
架构开发节点应用程序。我们正在使用serverless-webpack
插件来构建应用程序。这是webpack.config.js
module.exports = {
mode: isLocal ? 'development' : 'production',entry: slsw.lib.entries,externals: [nodeExternals()],devtool: 'inline-cheap-module-source-map',resolve: {
extensions: ['.js','.jsx','.json','.ts','.tsx']
},output: {
libraryTarget: 'commonjs2',path: path.join(__dirname,'.webpack'),filename: '[name].js'
},optimization: {
minimize: true,minimizer: [new TerserPlugin()],},target: 'node',module: {
rules: [{
test: /\.ts$/,exclude: /node_modules/,loader: 'ts-loader',options: {
// disable type checker - we will use it in fork plugin
transpileOnly: true
}
},{
test: /\.(graphql|gql)$/,loader: 'graphql-tag/loader',}
]
},// plugins: [new ForkTsCheckerWebpackPlugin()]
};
这是serverless.yml
文件:
service: app
provider:
name: aws
region: ${env:AWS_REGION}
stage: ${env:STAGE}
logRetentionInDays: 90
role: ${env:ROLE}
versionFunctions: false
runtime: nodejs12.x
package:
individually: true
plugins:
- serverless-webpack
- serverless-offline
custom:
webpack:
webpackConfig: './webpack-gql.config.js'
packager: 'npm'
includeModules: true
functions:
######## GraphQl ###########
graphql:
role: ${env:ROLE}
runtime: nodejs12.x
timeout: 30
handler: aws/lambda/common/api/graphql.graphqlHandler
events:
- http:
path: graphql
method: post
- http:
path: graphql
method: get
当我运行sls deploy --config serverless.yml
来部署应用程序时,一切正常,并且lambda已成功部署。
唯一的事情是,在部署过程中,它正在使用package-lock.json
并再次安装使用过的软件包:
Serverless: Package lock found - Using locked versions
Serverless: Packing external modules: graphql-compose@^7.19.3,linewrap@^0.2.1,d64@^1.0.0,graphql-scalars@^1.2.6,graphql-tools@^6.0.12
Serverless: Packaging service...
我的问题是如何在部署期间停止再次重新运行npm安装,而是在打包外部模块时应使用现有的node_moudles
。
有人可以帮我吗? ?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。