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
master
Akihiko Odaki 7 years ago committed by Eugen Rochko
parent a07cfee644
commit 81cefc1913
  1. 1
      Dockerfile
  2. 2
      docker-compose.yml
  3. 5
      package.json

@ -38,7 +38,6 @@ RUN apk -U upgrade \
libidn \ libidn \
libpq \ libpq \
nodejs \ nodejs \
nodejs-npm \
protobuf \ protobuf \
su-exec \ su-exec \
tini \ tini \

@ -55,7 +55,7 @@ services:
image: gargron/mastodon image: gargron/mastodon
restart: always restart: always
env_file: .env.production env_file: .env.production
command: npm run start command: yarn start
networks: networks:
- external_network - external_network
- internal_network - internal_network

@ -10,10 +10,9 @@
"build:production": "cross-env RAILS_ENV=production ./bin/webpack", "build:production": "cross-env RAILS_ENV=production ./bin/webpack",
"manage:translations": "node ./config/webpack/translationRunner.js", "manage:translations": "node ./config/webpack/translationRunner.js",
"start": "node ./streaming/index.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:lint": "eslint -c .eslintrc.yml --ext=js app/javascript/ config/webpack/ streaming/",
"test:jest": "cross-env NODE_ENV=test jest --coverage", "test:jest": "cross-env NODE_ENV=test jest --coverage"
"postinstall": "npm rebuild node-sass"
}, },
"repository": { "repository": {
"type": "git", "type": "git",

Loading…
Cancel
Save