Vueアプリをデプロイする方法は?


131

Vueアプリを開発した後はどうすればよいvue-cliですか?

角度 1つのスクリプトにすべてのスクリプトをバンドルし、いくつかのコマンドがあった、その後、これらのファイルをホストに送信されます。

Vueに同じものはありますか?


これはcliの一部である必要があります。デプロイメントのドキュメントページはvuejs.org/v2/guide/deployment.htmlです。使用しているバージョン、使用するテンプレートに応じて、おそらく少し異なります。ただし、ドキュメントのように本番ビルドを実行していることを指定する必要があります。
スイムバーガー2017年

2
2.2.1 vueを使用しています。ドキュメントは表示されますが、展開に関する情報はありません。ホスティング業者でnodejsを使用していません。したがって、localhostで起動すると機能しますが、すべてのファイルをホスティングサービスにダウンロードしても、ページには何も表示されません
artem0071

8
ビルドすると、おそらくすべてのファイル(html、css、js)が/ distフォルダーにコンパイルされます。このdistフォルダーは、ホスティング上のアプリのルートである必要があります。(私はまだVue2を使用していませんが、そこにあると思います)
スイムバーガー2017年

先週、これと同じ問題が発生し、誰かに役立つかどうかを書いています。medium.com
@ seenickcode

distフォルダーからcpanelにファイルをアップロードしましたが、空白しか表示されません
Fayaz

回答:


171

次のようにプロジェクトを作成したと思います。

vue init webpack myproject

さて、今、あなたは走ることができます

npm run build

index.htmlおよび/ dist /フォルダーをWebサイトのルートディレクトリにコピーします。できました。


1
走る必要はありませんnpm startか?
nu everest 2017

@nueverestであなたは自分のプロジェクトを作成した場合vue init webpack myproject、あなたのコンソールでの更なる説明が表示されます:cd myprojectnpm installnpm installすべてのパッケージがダウンロードされ、vueがnpm run dev開発サーバー+ホットリロード用に、またはnpm run buildデプロイ可能なバンドルを作成するためにコンパイルできるようになった後。
Egor Stambakio 2017

これはVueルーターでは動作しないようです...何か問題がありますか?
アンディヘイデン2017

1
@AndyHayden AWS S3チェック1)インデックスとエラードキュメント=== index.html; 2)静的Webサイトにポリシーが設定されている。3)あなたbuild.jsdists3のフォルダー内index.htmlにあり、ルートにいます。
エゴールスタンバキオ2017

9
答えは、「distフォルダの内容で十分です。コピーする必要はありませんが、必要なのはフォルダ内/index.htmlだけです。さらに、実行する前に、でプロダクションパスを構成する必要があります。index.htmldistnpm run buildconfig/index.js
David天宇Wong

24

以下を使用してプロジェクトを作成した場合:

vue init webpack myproject

NODE_ENVプロジェクトには開発用と本番用の両方で構成されたWebパックがあるため、を本稼働用に設定して実行する必要があります。

NODE_ENV=production npm run build

dist/ディレクトリをウェブサイトのルートディレクトリにコピーします。

Dockerを使用してデプロイする場合は、dist/ディレクトリを提供するエクスプレスサーバーが必要です。

Dockerfile

FROM node:carbon

RUN mkdir -p /usr/src/app

WORKDIR /usr/src/app
ADD . /usr/src/app
RUN npm install

ENV NODE_ENV=production

RUN npm run build

# Remove unused directories
RUN rm -rf ./src
RUN rm -rf ./build

# Port to expose
EXPOSE 8080
CMD [ "npm", "start" ]

そのコンテナを外部に公開しますか、それともnginxまたはapacheをプロキシとして使用しますか?
ハキム

ええ、あなたはApacheまたはNginxをプロキシとして使用します、ポート80
akinjide

paste.ubuntu.com/p/dryhSwnYh5 WORKDIR / usr / src / appはWORKDIR / appにすることができますか?また、CMD ["http-server"、 "dist"]は、httpサーバー経由での提供に必要ですか?CMDの代わりに["npm"、 "start"]
LOG_TAG

バージョン:webpack 3.12.0時間:16548msアセットサイズチャンクチャンク名build.js 2.15 MB 0 [放出] [big]メインbuild.js.map 9.74 MB 0 [放出] main –これは、上記のコマンドをプロジェクトに実行した後に表示されますフォルダ-ライブに入る次のステップを案内してくれませんか?–
Hamendra Sunthwal

7

あなたの端末で

npm run build

そして、distフォルダーをホストします。詳細 については、このビデオを参照してください


これは、package.jsonにビルドスクリプトが存在することを誤って想定しています。
クラッシュスプリングフィールド2018年

4
@crashspringfield OPで作成されたVueアプリケーションについて具体的に質問するときに行うべき正確な仮定vue-cli
Dan Fletcher

4

パスに問題が発生した場合assetPublicPathは、config/index.jsファイル内のをサブディレクトリに変更する必要があります。

http://vuejs-templates.github.io/webpack/backend.html


必ずビルドを変更してください:{..... assetsPublicPath: './'、スラッシュの前のドットは重要です。ただし、そのファイルのdevオブジェクトにもassetsPublinPathがあるため、必ず正しいものを変更してください。
シェーンG

バージョン:webpack 3.12.0時間:16548msアセットサイズチャンクチャンク名build.js 2.15 MB 0 [放出] [big]メインbuild.js.map 9.74 MB 0 [放出] main –これは、上記のコマンドをプロジェクトに実行した後に表示されますフォルダ-ライブに入る次のステップを案内してくれませんか?–
Hamendra Sunthwal

2

実行する特定のコードのコマンドは、スクリプトの下のpackage.jsonファイル内にリストされています。これが私の例です:

"scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lint": "vue-cli-service lint"
  },

ローカルでサイトを実行したい場合は、

npm serve

サイトを本番用に準備する場合は、

npm build

このコマンドは、サイトの圧縮バージョンを含むdistフォルダーを生成します。


1

アプリケーションを本番環境にデプロイするには、次を追加します

"build": "vue-cli-service build --mode prod"

スクリプト内のpackage.jsonファイル。

main.jsを開いて追加します

Vue.config.productionTip = false;

インポート直後。次に、プロジェクトフォルダーでCLIを開き、このコマンドを実行します

npm run build

これにより、プロジェクトディレクトリにdistフォルダーが作成されます。ホストにそのdistフォルダーをアップロードすると、ウェブサイトがライブになります


0

このコマンドは、開発サーバーを起動するためのものです。

npm run dev

このコマンドが本番ビルド用である場合:

npm run build

生成された「dist」というフォルダ内を確認してください。
次に、それらすべてのファイルをサーバーにプッシュします。


0

VUE-CLIを使用せずにこれを行う1つの方法は、すべてのスクリプトファイルを1つのファットjsファイルにバンドルし、その大きなファットJavaScriptファイルをメインテンプレートファイルに参照することです。

バンドラーとしてwebpackを使用し、プロジェクトのルートディレクトリにwebpack.conig.jsを作成することを好みます。エントリポイント、出力ファイル、ローダーなどのすべての構成は、すべてその構成ファイルに格納されます。その後、webpack構成用のwebpack.config.jsファイルを使用するpackage.jsonファイルにスクリプトを追加し、ファイルの監視を開始して、webpack.config.jsファイル内の指定された場所にJsバンドルファイルを作成します。


0

あなたはvue-cliを使うことができると思います

デプロイメントの一部として静的アセットを処理するバックエンドフレームワークと一緒にVue CLIを使用している場合、必要なことは、Vue CLIがビルドされたファイルを正しい場所に生成し、バックエンドフレームワークのデプロイメント手順に従うことだけです。 。

フロントエンドアプリをバックエンドとは別に開発している場合(つまり、バックエンドがフロントエンドが通信するためのAPIを公開している場合)、フロントエンドは本質的に純粋に静的なアプリです。distディレクトリのビルド済みコンテンツを任意の静的ファイルサーバーにデプロイできますが、必ず正しいbaseUrlを設定してください


あなたは正しいですが、受け入れられた回答が示すように、質問はどのコマンドを実行するかということでした
JR Utily '17

0
  1. npm run build-これはコードを醜く、小さくします

  2. index.htmlとdistフォルダーをWebサイトのルートディレクトリに保存します。

  3. 興味のある無料のホスティングサービス-Firebaseホスティング。


0

プロジェクトの作成時にvue-cliとwebpackを使用した場合。

あなたはちょうど使うことができます

コマンドラインでnpm run buildコマンドを実行すると、プロジェクトにdistフォルダーが作成されます。このフォルダのコンテンツをFTPにアップロードして完了です。


distフォルダーをFTPにアップロードして完了ですか?&サーバー上のVueアプリにアクセスする方法は?
Hamendra Sunthwal

0

これは、カスタムフォルダへの展開用ですフォルダにするためのものです(URL / myApp /など、ルートにないアプリが必要な場合)-この答えを見つけるために長い間探していました...誰かに役立つことを願っています。

https://cli.vuejs.org/guide/で VUE CLIを入手してください、UIビルドを使用して簡単に実行できます。次に、構成でパブリックパスを/ whatever /に変更し、URL / whateverにリンクできます。

さらにヘルプが必要な場合は、CLIを使用してVueアプリを作成する方法を説明した次のビデオをご覧ください。https//www.youtube.com/watch?v = Wy9q22isx3U


0

Vueのドキュメントには、さまざまなホストプロバイダーに展開する方法に関するこれに関する多くの情報が記載されています。

npm run build

これは、パッケージのjsonファイルから見つけることができます。スクリプトセクション。テストおよび開発用のスクリプトと、本番用のビルドを提供します。

プロジェクトのgithubリポジトリをサイトからリンクすることにより、プロジェクトをバンドルするnetlifyなどのサービスを使用できます。また、herokuなどの他のサイトにデプロイする方法についても説明します。

詳細はこちら


0

最初にVue Cliをグローバルにインストールする

npm install -g @vue/cli

新しいプロジェクトを作成するには、次のコマンドを実行します。

vue create project-name

走る

npm run serve 

Vue CLI> = 3は同じVueバイナリを使用するため、Vue CLI 2(vue-cli)を上書きします。それでも従来のvue init機能が必要な場合は、グローバルブリッジをインストールできます。

Vue Init Globally

npm install -g @vue/cli-init

vue initがvue-cli@2.xとまったく同じように機能するようになりました

Vue Createアプリ

vue init webpack my-project

開発者サーバーを実行する

npm run dev

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.