anchor.diff:  RUN tar -xzf /tmp/node-v${NODEJS_VERSION}-headers.tar.gz --strip-components=1 -C /usr/local
   
   RUN npm init -y
  -RUN npm install --production -g \
  -    sass \
  -    sass-lint \
  -    typescript \
  -    tslint \
  -    markdown-spellcheck \
  -    svgstore-cli \
  -    svgo
  -RUN npm install --production --save-dev @babel/core @babel/cli @babel/preset-env
  -RUN npm install --production --save-dev babel-preset-minify
  -RUN npm install --production --save @babel/polyfill
  +RUN npm install --production --global \
  +    sass@${SASS_VERSION} \
  +    sass-lint@${SASS_LINT_VERSION} \
  +    typescript@${TYPESCRIPT_VERSION} \
  +    tslint@${TSLINT_VERSION} \
  +    markdown-spellcheck@${MARKDONN_SPELLCHECK_VERSION} \
  +    svgstore-cli@${SVGSTORE_CLI_VERSION} \
  +    svgo@${SVGO_VERSION}
  +
  +RUN npm install --production --global \
  +    @babel/core@${BABEL_CORE_VERSION} \
  +    @babel/cli@${BABEL_CLI_VERSION} \
  +    @babel/preset-env@${BABEL_PRESET_ENV_VERSION} \
  +    babel-preset-minify@${BABEL_PRESET_MINIFY_VERSION}
  +RUN npm install --save @babel/polyfill
   
   #############
   # Ruby
  
positive.code: FROM ubuntu:xenial as nodejs_tools_context
  
  ENV NODEJS_VERSION=12.8.0
  
  ADD https://nodejs.org/download/release/v${NODEJS_VERSION}/node-v${NODEJS_VERSION}-linux-x64.tar.gz /tmp
  RUN tar -xzf /tmp/node-v${NODEJS_VERSION}-linux-x64.tar.gz --strip-components=1 -C /usr/local
  
negative.code: # Copyright 2019 Istio Authors
  #
  # Licensed under the Apache License, Version 2.0 (the "License");
  # you may not use this file except in compliance with the License.
  # You may obtain a copy of the License at
  #
  #    http://www.apache.org/licenses/LICENSE-2.0
  #
  # Unless required by applicable law or agreed to in writing, software
  # distributed under the License is distributed on an "AS IS" BASIS,
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  # See the License for the specific language governing permissions and
  # limitations under the License.
  
  # This is used to build Istio's primary build container, which contains all the tools
  # necessary to perform and all build activities in all Istio repos.
  #
  # The container is built using different contexts, one per execution environment (plain binaries, Ruby, nodejs), and
  # then combined into the final image.
  #
  # We pin versions of stuff we install. Modify the various XXX_VERSION variables within the indivudual build contexts
  # in order to control these versions.
  #
  # NOTE: This is still a work-in-progress and only some Istio repos use this. More tools will be
  # added here as we onboard more repos.
  
  #############
  # Binary tools
  #############
  
  FROM golang:1.12.5 as binary_tools_context
  
  # Pinned versions of stuff we pull in
  ENV PROTOBUF_VERSION=3.6.1
  