# Rangkuman tentang scripts di package.json (NodeJS)

Pada awal pengembangan nodejs pasti sudah sering menjalankan `npm run dev` atau `npm run start`. sekarang saya akan membagian sedikit tentang point-point yang harus diperhatikan. point-pointnya sebagai berikut

1. **Bisa menjalankan package yg sudah diinstal tanpa harus menambahkan di scripts**.
    
    ketika menginstal misal jest. `npm i -D jest`. Anda bisa langsung menjalankan dengan menggunakan **npx**. contoh:
    
    ```bash
    npx jest
    ```
    
2. **Bisa menjalankan perintah prompt OS di scripts**  
    yang di script tidak hanya menjalankan package yg sudah diinstal. tetapi juga prompt pada terminal. seperti del, copy, mkdir, ls, dll. contoh penggunaan seperti berikut:
    
    ```json
     "make-folder": "mkdir nama-folder"
    ```
    
3. **Bisa menggambungkan beberapa perintah dalam satu script**
    
    misal ketika ingin membuat folder lalu membuat file index.html. contoh sebagai berikut:
    
    ```json
    "make-folder": "mkdir nama-folder && touch index.html"
    ```
    
4. **Bisa ketika menjalankan 1 script bisa menjalankan 2 secript skaligus.**  
    kita cukup menambahkan pre di nama script. misal sebelum menjalankan test, kita sebagainya menjalankan perintah yg lain dlu.
    
    ```json
    "pretest":"echo 'menjalankan pretest'"
    
    "test":"echo 'menjalankan test'"
    ```
    
    ketika dijalankan `npm run test`. maka yg muncul adalah
    
    ```bash
    menjalankan pretest
    menjalankan test
    ```
    
    sehingga anda bisa menggunakan untuk precompiler, dll.
    
5. **Bisa menampilkan info versi project**  
    misal ingin menampilkan info versi project sekarang.
    
    ```json
    "cek-versi":"echo 'versi sekarang' %s"
    ```
    
6. **Bisa mengambil data yg dimasukkan ke dalam argument**
    
    misal saya ingin menampilkan nama yg saya masukkan ketika menjalankan
    
    ```bash
    npm run myname ariska
    ```
    
    Sehingga scriptnya sebagai berikut:
    
    ```json
    "myname":"echo 'my name is' $1"
    ```
    
7. **Tidak bisa membuat percabangan dengan membandingkan isi argument**
    
    misal kita membandingkan argument dengan nama 'ariska'.
    
    ```json
    "test": "if ( $1 = 'ariska' ); then echo 'lengkap' ; else echo 'harus mengisi lengkap.'"
    ```
    
    sehingga menyebabkan error. tetapi ketika mengisi value true atau false. baru bisa berjalan dengan baik
    
    ```json
    "test": "if (true); then echo 'lengkap' ; else echo 'harus mengisi lengkap.'"
    ```
    
    sehingga ketika dijalankan `npm run test`. hasilnya
    
    ```bash
    lengkap
    ```
    
8. **Bisa menggunakan script javascript untuk memproses argument**
    
    misal menampilan nama jika mengisi dan tidak menampilkan apapun jika tidak mengirimkan argument.
    
    buat file **npmcode.js** dengan isi
    
    ```javascript
    if (process.argv[2] === '') {
      process.exit();
    }
    
    console.log('hallo ' + process.argv[2]);
    ```
    
    lalu pada scriptsnya
    
    ```json
    "code": "node npmcode.js",
    ```
    
    sehingga ketika dicoba jalankan `npm run code ariska`. hasilnya
    
    ```bash
    hallo ariska
    ```
    
    Sebenarnya masih banyak, biar bisa saling berbagi, silakan tambahkan catatan ke 9 dan seterusnya dicomment dibawah ini.
    
    Semoga bermanfaat. Terimakasih
