2

Ich habe ein Projekt, das erfolgreich auf Jenkins baut, aber wenn ich versuche, mit AWS Codebuild zu bauen, gibt es einen Plugin-Fehler. Das Projekt ist im Grunde ein NodeJS- und ReactJS-Projekt. Wir möchten nicht zu Jenkins wechseln, da wir serverlos sind und die Installation von jenkins eine EC2-Instanz benötigt. Wir möchten keinen Server unterhalten. Ich habe unten Umgebungen für AWS codebuild versucht:Build ist in Jenkins erfolgreich, aber AWS-Codebuild gibt Plugin Fehler

aws/codebuild/ubuntu-base:14.04 
aws/codebuild/nodejs:6.3.1 
aws/codebuild/nodejs:7.0.0 
aws/codebuild/nodejs:4.4.7 

Die ersten vier Befehle meines buildspec.yml wird nur dann ausgeführt, wenn ich aws/codebuild/ubuntu-base:14.04 codebuild Umgebung. Ansonsten werden nur

Im Folgenden drei Befehle sind Teil meiner buildspec.yml zuletzt ist mein buildspec.yml ist

version: 0.1 

phases: 
    build: 
    commands: 
     - sudo apt-get update 
     - curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - 
     - sudo apt-get install -y nodejs 
     - sudo apt-get install -y build-essential 
     - npm install 
     - npm run dev 
     - aws s3 cp --recursive dist/ s3://$AWS_BUCKET_NAME/ --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers 

Im Folgenden meine Fehlerprotokolle in AWS codebuild während npm Lauf

ERROR in 
Child html-webpack-plugin for "index.html": 
+ 3 hidden modules 

Auch ich bekomme folgende Warnung während der Installation von npm in Codebuild, aber ich bekomme diese Warnung nicht in Jenkins

Unten ist mein webpack.config.js

var path = require('path'); 
var webpack = require('webpack'); 
var HtmlWebpackPlugin = require('html-webpack-plugin'); 
var FlowStatusWebpackPlugin = require('flow-status-webpack-plugin'); 

module.exports = { 
    entry: [ 
     './src/app/index.js' 
    ], 
    output: { 
     path: __dirname + '/dist', 
     filename: 'index_bundle.js' 
    }, 
    module: { 
     loaders: [ 
      { 
       test: /\.json$/, 
       loader: 'json' 
      }, 
      { 
       test: /\.js$/, 
       exclude: /(node_modules|test)/, 
       loaders: ["babel-loader"] 
      }, 
      { 
       test: /\.(css|scss)$/, 
       loaders: ['style', 'css', 'sass-loader'] 
      }, 
      { 
       test: /\.(png|woff|woff2|eot|ttf|svg)$/, 
       loader: 'url-loader', 
       options: { 
        limit: 100000, 
        name: 'assets/[hash].[ext]' 
       } 
      }, 
      { 
       test: /\.styl$/, 
       loader: 'style-loader!css-loader!postcss-loader!stylus-loader' 
      } 
     ] 
    }, 
    plugins: [ 
     new HtmlWebpackPlugin({ 
      template: __dirname + '/src/app/index.html', 
      filename: 'index.html', 
      inject: 'body' 
     }), 
     new webpack.ProvidePlugin({ 
      $: "jquery", 
      jQuery: "jquery" 
     }), 
     new webpack.DefinePlugin({ 
      "process.env": { 
       'NODE_ENV': JSON.stringify('dev') 
      } 
     }), 
     new FlowStatusWebpackPlugin({ 
      failOnError: true 
     }) 
    ], 
    devtool: 'source-map', 
    node: { 
     tls: "empty", 
     fs: "empty" 
    }, 
    resolve: { 
     root: path.resolve(__dirname), 
     alias: { 
      '~': 'src', 
     }, 
     extensions: ['', '.js', '.jsx'] 
    }, 
}; 
+0

Hallo, nur zu überprüfen, wo hoffen Sie, die Website (aus dem Build kommen) zu hosten? Betrachtet man die Buildspec, würde ich vermuten, dass Sie versuchen, es in S3 zu hosten? – Rikusor

+0

Ja, es ist in S3 gehostet. @ Riku – deosha

+1

Amazon S3 unterstützt serverseitige Skripts nicht. Sie können dort keinen NodeJS-Code hosten. http://docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting.html Das bedeutet, dass Ihr Build nur Befehle ausführen sollte, die die endgültige vollständig statische Version der Website ausliefern und diese Dateien auf S3 hochladen. Bedeutung z.B. npm run sollte nicht Teil des Build-Prozesses sein. – Rikusor

Antwort

1
new HtmlWebpackPlugin({ 
    template: __dirname + '/src/app/index.html', 
    filename: 'index.js', 
    inject: 'body' 
}) 

filename Option soll eine Javascript-Datei sein? Das heißt: filename: index.js

Verwandte Themen