Усиление 'publish' создает корзину S3, но ничего к ней не добавляет - PullRequest
0 голосов
/ 11 апреля 2019

Я использую AWS усиление для поддержки приложения JS.В настоящее время у меня есть только два ресурса: API (appsync / graphql) и хостинг, что вызывает у меня проблемы.

amplify add hosting, кажется, работает нормально, как и amplify push.amplify publish (для dev S3) дает положительный ответ, и в S3 создается соответствующий сегмент, но он пуст.Ссылка направляет меня на страницу с ошибкой:

404 Not Found

    Code: NoSuchKey
    Message: The specified key does not exist.
    Key: index.html

Я успешно запустил учебник по JS по усилению и простой альфа-предшественник моего текущего приложения.Они правильно заполняют новое ведро S3, когда я звоню amplify publish.

Файл index.html очень простой и одинаковый между альфа и бета версией.Просто заголовок, два пустых элемента и <script> вызов main.bundle.js.У старого был файл css в файле index.html.

  • Обратите внимание, что npm start и открытие в localhost прекрасно работает для ALL вариантов.

Я вижу только два основных отличия от альфы и текущей версии.

  1. Старые версии были .js, новая - .jsx для React (все они используют webpack).
  2. Мой css теперь находится во внешнем файле (связан с использованием веб-пакета).

Вот мой webpack.config.js для приложения альфа :

const CopyWebpackPlugin = require('copy-webpack-plugin');
const webpack = require('webpack');
const path = require('path');

module.exports = {
    mode: 'development',
    entry: './src/app.js',
    output: {
        filename: '[name].bundle.js',
        path: path.resolve(__dirname, 'dist')
    },
    module: {
        rules: [
            {
                test: /\.js$/,
                exclude: /node_modules/
            }
        ]
    },
    devServer: {
        contentBase: './dist',
        overlay: true,
        hot: true
    },
    plugins: [
        new CopyWebpackPlugin(['index.html']),
        new webpack.HotModuleReplacementPlugin()
    ]
};

Вот webpack.config.js для текущего приложения:

const CopyWebpackPlugin = require('copy-webpack-plugin');
const webpack = require('webpack');
const path = require('path');

module.exports = {
    mode: 'development',
    entry: './src/app.jsx',
    output: {
        filename: '[name].bundle.js',
        path: path.resolve(__dirname, 'dist')
    },
    module: {
        rules: [
            {
                test: /\.jsx?$/,
                exclude: /node_modules/,
                loader: 'babel-loader',
                query: {
                    presets: ['@babel/preset-env', '@babel/preset-react']
                }
            },{
                test: /\.css$/,
                use: [
                    'style-loader',
                    'css-loader'
                ]
            }
        ]
    },
    devServer: {
        contentBase: './dist',
        overlay: true,
        hot: true
    },
    plugins: [
        new CopyWebpackPlugin(['index.html']),
        new webpack.HotModuleReplacementPlugin()
    ]
};

Я не уверен, что проблема связана с чем-то другим.

Вывод для amplify add hosting:

? Select the environment setup: DEV (S3 only with HTTP)
? hosting bucket name blahblahblahblahblahblahblahblah
? index doc for the website index.html
? error doc for the website index.html

You can now publish your app using the following command:
Command: amplify publish

Вывод для amplify push (уверен, что эта команда не нужна):

| Category | Resource name   | Operation | Provider plugin   |
| -------- | --------------- | --------- | ----------------- |
| Hosting  | S3AndCloudFront | Create    | awscloudformation |
| Api      | AppSyncResource | No Change |                   |
? Are you sure you want to continue? Yes
/ Updating resources in the cloud. This may take a few minutes...

CREATE_IN_PROGRESS hostingS3AndCloudFront      AWS::CloudFormation::Stack Wed Apr 10 2019 20:34:27 GMT-0400 (Eastern Daylight Time) Resource creation Initiated
CREATE_IN_PROGRESS hostingS3AndCloudFront      AWS::CloudFormation::Stack Wed Apr 10 2019 20:34:26 GMT-0400 (Eastern Daylight Time)
UPDATE_IN_PROGRESS myapp-datetime AWS::CloudFormation::Stack Wed Apr 10 2019 20:34:20 GMT-0400 (Eastern Daylight Time) User Initiated
- Updating resources in the cloud. This may take a few minutes...

CREATE_IN_PROGRESS S3Bucket                                                         AWS::S3::Bucket            Wed Apr 10 2019 20:34:32 GMT-0400 (Eastern Daylight Time)
CREATE_IN_PROGRESS myapp-datetime-hostingS3AndCloudFront-16JS9AMKX3673 AWS::CloudFormation::Stack Wed Apr 10 2019 20:34:27 GMT-0400 (Eastern Daylight Time) User Initiated
\ Updating resources in the cloud. This may take a few minutes...

CREATE_IN_PROGRESS S3Bucket AWS::S3::Bucket Wed Apr 10 2019 20:34:33 GMT-0400 (Eastern Daylight Time) Resource creation Initiated
/ Updating resources in the cloud. This may take a few minutes...

CREATE_COMPLETE    myapp-datetime-hostingS3AndCloudFront-16JS9AMKX3673 AWS::CloudFormation::Stack Wed Apr 10 2019 20:35:00 GMT-0400 (Eastern Daylight Time)
CREATE_COMPLETE    BucketPolicy                                                     AWS::S3::BucketPolicy      Wed Apr 10 2019 20:34:58 GMT-0400 (Eastern Daylight Time)
CREATE_IN_PROGRESS BucketPolicy                                                     AWS::S3::BucketPolicy      Wed Apr 10 2019 20:34:58 GMT-0400 (Eastern Daylight Time) Resource creation Initiated
CREATE_IN_PROGRESS BucketPolicy                                                     AWS::S3::BucketPolicy      Wed Apr 10 2019 20:34:57 GMT-0400 (Eastern Daylight Time)
CREATE_COMPLETE    S3Bucket                                                         AWS::S3::Bucket            Wed Apr 10 2019 20:34:54 GMT-0400 (Eastern Daylight Time)
- Updating resources in the cloud. This may take a few minutes...

UPDATE_COMPLETE                     myapp-datetime AWS::CloudFormation::Stack Wed Apr 10 2019 20:35:06 GMT-0400 (Eastern Daylight Time)
UPDATE_COMPLETE_CLEANUP_IN_PROGRESS myapp-datetime AWS::CloudFormation::Stack Wed Apr 10 2019 20:35:05 GMT-0400 (Eastern Daylight Time)
CREATE_COMPLETE                     hostingS3AndCloudFront      AWS::CloudFormation::Stack Wed Apr 10 2019 20:35:02 GMT-0400 (Eastern Daylight Time)
√ All resources are updated in the cloud

Hosting endpoint: http://myapp-datetime-hostingbucket.s3-website-us-east-1.amazonaws.com

Вывод amplify publish:

| Category | Resource name   | Operation | Provider plugin   |
| -------- | --------------- | --------- | ----------------- |
| Api      | AppSyncResource | No Change |                   |
| Hosting  | S3AndCloudFront | No Change | awscloudformation |
? Are you sure you want to continue? Yes
√ All resources are updated in the cloud



> my-app@1.0.0 build C:\path\to\my-app
> webpack

Hash: 749f0c4a7f4c6cab8189
Version: webpack 4.29.6
Time: 4020ms
Built at: 04/10/2019 8:42:00 PM
         Asset       Size  Chunks             Chunk Names
    index.html  632 bytes          [emitted]
main.bundle.js   3.68 MiB    main  [emitted]  main
Entrypoint main = main.bundle.js
[0] fs (ignored) 15 bytes {main} [built]
[./css/style.css] 1.06 KiB {main} [built]
[./node_modules/css-loader/dist/cjs.js!./css/style.css] 1.15 KiB {main} [built]
[./node_modules/webpack/buildin/global.js] (webpack)/buildin/global.js 472 bytes {main} [built]
[./node_modules/webpack/buildin/harmony-module.js] (webpack)/buildin/harmony-module.js 573 bytes {main} [built]
[./node_modules/webpack/buildin/module.js] (webpack)/buildin/module.js 497 bytes {main} [built]
[./src/app.jsx] 9.88 KiB {main} [built]
[./src/aws-exports.js] 689 bytes {main} [built]
[./src/graphql/mutations.js] 688 bytes {main} [built]
[./src/graphql/queries.js] 649 bytes {main} [built]
[./src/utils/client-handler.jsx] 3.97 KiB {main} [built]
[./src/utils/flag-form.jsx] 6.73 KiB {main} [built]
    + 500 hidden modules
frontend build command exited with code 0
√ Uploading files successful.
Your app is published successfully.
http://myapp-datetime-hostingbucket.s3-website-us-east-1.amazonaws.com

Тем не менее, когда я перехожу по ссылке, это ошибка 404.

Мое приложение также не работает, если я пытаюсь опубликовать в prod.Я предполагаю, что это вызвано той же проблемой.

...