Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 在使用无服务器Web包的无服务器部署期间使用现有节点\ U模块_Node.js_Amazon Web Services_Webpack_Serverless_Serverless Webpack Plugin - Fatal编程技术网

Node.js 在使用无服务器Web包的无服务器部署期间使用现有节点\ U模块

Node.js 在使用无服务器Web包的无服务器部署期间使用现有节点\ U模块,node.js,amazon-web-services,webpack,serverless,serverless-webpack-plugin,Node.js,Amazon Web Services,Webpack,Serverless,Serverless Webpack Plugin,我正在使用serverless体系结构开发节点应用程序。我们正在使用serverless webpack插件构建应用程序。这是webpack.config.js module.exports = { mode: isLocal ? 'development' : 'production', entry: slsw.lib.entries, externals: [nodeExternals()], devtool: 'inline-cheap-module-source-map'

我正在使用
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)$/,
        exclude: /node_modules/,
        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部署成功。 唯一的问题是,在部署过程中,它正在使用
包锁.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\u moudles

有人能帮我吗

尝试从
webpack.config.js
中的规则中删除
exclude:/node\u modules/,
。是否有理由将所有的
node\u模块
放在软件包中?这可能会导致您的无服务器软件包变得庞大,因为它现在包含所有npm软件包。我绝对不推荐它。@ultimoTG No我想要的是,它应该从
node\u模块
中获取软件包,而不是在打包时重新安装。