about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAkihiko Odaki <akihiko.odaki.4i@stu.hosei.ac.jp>2018-03-07 05:36:46 +0900
committerEugen Rochko <eugen@zeonfederated.com>2018-03-06 21:36:46 +0100
commit81cefc1913e89a3f659d9a2663f4006db94004cd (patch)
treef778677741ddaa8524f4f5565b4589eb67aa1283
parenta07cfee644a6b854c977903775e083c2a3d827b8 (diff)
Do not use npm (#6656)
Both of yarn and npm are used in Mastodon, but the combined usage requires
a redundant dependency and may lead to data inconsistency.

Considering that yarn has autoclean feature which npm does not have,
this change replaces all npm usage with yarn.

This change requires documentation update. Most notably, the following
command must be executed before assets precompilation if any system
dependency of node-sass has changed:

yarn install --force --pure-lockfile
-rw-r--r--Dockerfile1
-rw-r--r--docker-compose.yml2
-rw-r--r--package.json5
3 files changed, 3 insertions, 5 deletions
diff --git a/Dockerfile b/Dockerfile
index c22756d0c..377380a84 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -38,7 +38,6 @@ RUN apk -U upgrade \
     libidn \
     libpq \
     nodejs \
-    nodejs-npm \
     protobuf \
     su-exec \
     tini \
diff --git a/docker-compose.yml b/docker-compose.yml
index 55b419e98..4d9a6c40d 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -55,7 +55,7 @@ services:
     image: gargron/mastodon
     restart: always
     env_file: .env.production
-    command: npm run start
+    command: yarn start
     networks:
       - external_network
       - internal_network
diff --git a/package.json b/package.json
index abc13e1ea..5b9ea7d37 100644
--- a/package.json
+++ b/package.json
@@ -10,10 +10,9 @@
     "build:production": "cross-env RAILS_ENV=production ./bin/webpack",
     "manage:translations": "node ./config/webpack/translationRunner.js",
     "start": "node ./streaming/index.js",
-    "test": "npm run test:lint && npm run test:jest",
+    "test": "yarn run test:lint && yarn run test:jest",
     "test:lint": "eslint -c .eslintrc.yml --ext=js app/javascript/ config/webpack/ streaming/",
-    "test:jest": "cross-env NODE_ENV=test jest --coverage",
-    "postinstall": "npm rebuild node-sass"
+    "test:jest": "cross-env NODE_ENV=test jest --coverage"
   },
   "repository": {
     "type": "git",