web-dev-qa-db-ja.com

node_modulesフォルダーを本番サーバーにデプロイする方法は?

私は非常に単純なウェブサイト(Pastebinのように)をPHP(LAMPサーバー)で作成しています。このサイトはjqueryとブートストラップを使用しています。以前はbowerを使用していました。 、しかし、代わりにnpmを使用するように切り替えたいと思います。

私のディレクトリ構造は次のようなものです。

  • 公衆
    • html
      • index.php
      • node_modules
        • jquery
          • dist
            • jquery.js
          • プラス数十の不要なフォルダ
        • ブートストラップ
          • .。

Bowerを使用していたときは、bower_componentsフォルダー全体をFTPサーバーにアップロードしていました。私のnode_modulesフォルダーはかなり大きく、何百ものファイルが含まれているので、アップロードする必要があるかどうかわかりませんか?

Package.jsonをアップロードして、アップロード後にWebサーバーのコマンドラインでnpm installを実行できると思いますが、node_modulesフォルダーを公開すると、潜在的なセキュリティリスクが発生しますか?

9
supersan

node_modulesフォルダーは、gitを使用している場合は.gitignoreにある必要があります。いいえ、フォルダ全体をアップロードするわけではありません。あなたが言うように、あなたはnpm installを実行します。これはbowerにも当てはまります。bower_componentsフォルダをアップロードしないでください。サーバーでコマンドを実行する必要があります。

質問の他の部分については、node_modulesを公開しないでください。タスクマネージャーまたはバンドラー(gulp、grunt、webpack)を使用して、ファイル(cssおよびjs)のバンドル(または連結)バージョンを作成します。このファイルを入手したら、それを公開します。これは、インデックスに含めるものです。たとえば、<script src="dist/bundle.min.js"></script>

10
yBrodsky