typescript - چگونه فایلهای غیرضروری را از یک بسته npm فرانتاند در محیط تولید حذف کنیم


من یک برنامه وب فرانتاند ساخته شده با Angular 2 و TypeScript دارم و نمیتوانم راهی برای سازماندهی درست فرآیند ساخت پیدا کنم.

فرض کنیم من این ساختار را دارم که فکر میکنم منطقی است:

/
 - dist/   <-- transpiled .js files
 - src/    <-- .ts files
 - assets/
 - bower_components/
 - node_modules/
 - package.json
 - index.html

سؤال ۱

البته دوست دارم پوشه src روی سرور تولید نباشد. اما اگر باید آن را حذف کنم، کی باید این کار را انجام دهم؟ با یک اسکریپت npm؟ با یک کار Grunt؟ با rm هنگام ایجاد یک تصویر Docker؟

همین موضوع برای package.json و Gruntfile.js نیز صدق میکند.

سؤال ۲

یک مشکل مشابه از پوشه node_modules ناشی میشود: من از Browserify برای بستهبندی بیشتر وابستگیهای برنامهام به یک فایل واحد استفاده میکنم، بنابراین برای مثال Angular بخشی از dist/bundle.js میشود.

آیا باید node_modules را روی سرور تولید حذف کنم، با توجه به اینکه دیگر مفید نیست؟ چگونه؟

به دلایلی ممکن است از برخی ماژولها استفاده کنم که در بسته نهایی گنجانده نخواهند شد (مثلاً به این دلیل که از تگهای <script> ارجاع داده شدهاند): چگونه بفهمم چه چیزی را حذف کنم و چه چیزی را نگه دارم؟

پاسخ شماره ۱

من فرض میکنم که TS/JS شما کاملاً سمت کاربر (در مرورگر) است.

در این صورت، اگر پروژهی شما هیچ کد سمت سرور نداشته باشد، من دیدهام که بسیاری از پروژهها از چیزی شبیه یک پوشه www استفاده میکنند که نمایانگر طرح URL وبسایت قبل از استقرار است. هر چیزی خارج از www تنها برای توسعه است (src، node_modules و غیره). باعث میشود استقرار ساده بماند :)