Сборка в Jenkins прошла успешно, но AWS-Codebuild выдает ошибку плагина

У меня есть проект, который успешно строится на Jenkins, но когда я пытаюсь построить с использованием AWS Codebuild, он выдает ошибку плагина. По сути, это проект NodeJS и ReactJS. Мы не хотим переходить на Jenkins, поскольку у нас нет сервера, а для установки jenkins требуется один экземпляр EC2. Мы не хотим поддерживать какой-либо сервер. Я пробовал следующие среды для сборки кода AWS:

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

Первые четыре команды моего buildspec.yml выполняются только тогда, когда я использую aws/codebuild/ubuntu-base:14.04 среду сборки кода. В противном случае только последние три команды являются частью моего buildspec.yml

Ниже мой buildspec.yml

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

Ниже приведены мои журналы ошибок в кодовой сборке AWS во время запуска npm.

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

Кроме того, я получаю следующее предупреждение во время установки npm в Codebuild, но я не получаю это предупреждение в Jenkins

npm WARN deprecated [email protected]: This plugin is no longer maintained. Please use babel-plugin-react-transform with react-transform-hot-reload instead.

Ниже мой 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']
    },
};

person deosha    schedule 29.05.2017    source источник
comment
Привет, просто проверяю, где вы надеетесь разместить сайт (после сборки)? Глядя на спецификацию сборки, я могу предположить, что вы пытаетесь разместить ее в S3?   -  person Rikusor    schedule 29.05.2017
comment
Да, он размещен в S3. @Riku   -  person deosha    schedule 29.05.2017
comment
Amazon S3 не поддерживает серверные сценарии. Вы не можете разместить там код NodeJS. docs.aws.amazon.com/AmazonS3/latest/dev/WebsiteHosting. html Это означает, что ваша сборка должна запускать только команды, которые выводят окончательную полностью статическую версию веб-сайта и загружают эти файлы в S3. Значение, например, npm run не должен быть частью процесса сборки.   -  person Rikusor    schedule 29.05.2017
comment
Я пытаюсь загрузить только окончательную статическую версию. npm run создает папку dist /, и содержимое этой папки (которая является статическим сайтом) загружается в S3. Он отлично работает, когда я строю из jenkins. Но Codebuild показывает ошибку. @Riku   -  person deosha    schedule 29.05.2017
comment
Хорошо, это полная трассировка стека ошибок для ошибки webpack ?; ОШИБКА в дочернем html-webpack-плагине для index.html: + 3 модуля   -  person Rikusor    schedule 29.05.2017
comment
Да, ошибка только в этом. @Riku   -  person deosha    schedule 29.05.2017
comment
Позвольте нам продолжить это обсуждение в чате.   -  person Rikusor    schedule 29.05.2017


Ответы (1)


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

filename вариант должен быть файлом javascript? то есть: filename: index.js

person Bwaxxlo    schedule 07.06.2017