language/node: adjustments for npm 5.0.x
Goes with: https://github.com/Homebrew/homebrew-core/pull/14085
This commit is contained in:
parent
8b26deef20
commit
b6d81359f0
@ -4,6 +4,17 @@ module Language
|
|||||||
"cache=#{HOMEBREW_CACHE}/npm_cache\n"
|
"cache=#{HOMEBREW_CACHE}/npm_cache\n"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def self.pack_for_installation
|
||||||
|
# Homebrew assumes the buildpath/testpath will always be disposable
|
||||||
|
# and from npm 5.0.0 the logic changed so that when a directory is
|
||||||
|
# fed to `npm install` only symlinks are created linking back to that
|
||||||
|
# directory, consequently breaking that assumption. We require a tarball
|
||||||
|
# because npm install creates a "real" installation when fed a tarball.
|
||||||
|
output = Utils.popen_read("npm pack").chomp
|
||||||
|
raise "npm failed to pack #{Dir.pwd}" unless $?.exitstatus.zero?
|
||||||
|
output
|
||||||
|
end
|
||||||
|
|
||||||
def self.setup_npm_environment
|
def self.setup_npm_environment
|
||||||
npmrc = Pathname.new("#{ENV["HOME"]}/.npmrc")
|
npmrc = Pathname.new("#{ENV["HOME"]}/.npmrc")
|
||||||
# only run setup_npm_environment once per formula
|
# only run setup_npm_environment once per formula
|
||||||
@ -14,7 +25,7 @@ module Language
|
|||||||
npmrc.write npm_cache_config
|
npmrc.write npm_cache_config
|
||||||
# explicitly use our npm and node-gyp executables instead of the user
|
# explicitly use our npm and node-gyp executables instead of the user
|
||||||
# managed ones in HOMEBREW_PREFIX/lib/node_modules which might be broken
|
# managed ones in HOMEBREW_PREFIX/lib/node_modules which might be broken
|
||||||
ENV.prepend_path "PATH", Formula["node"].opt_libexec/"npm/bin"
|
ENV.prepend_path "PATH", Formula["node"].opt_libexec/"bin"
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.std_npm_install_args(libexec)
|
def self.std_npm_install_args(libexec)
|
||||||
@ -22,8 +33,16 @@ module Language
|
|||||||
# tell npm to not install .brew_home by adding it to the .npmignore file
|
# tell npm to not install .brew_home by adding it to the .npmignore file
|
||||||
# (or creating a new one if no .npmignore file already exists)
|
# (or creating a new one if no .npmignore file already exists)
|
||||||
open(".npmignore", "a") { |f| f.write("\n.brew_home\n") }
|
open(".npmignore", "a") { |f| f.write("\n.brew_home\n") }
|
||||||
|
|
||||||
|
pack = pack_for_installation
|
||||||
|
|
||||||
# npm install args for global style module format installed into libexec
|
# npm install args for global style module format installed into libexec
|
||||||
["--verbose", "--global", "--prefix=#{libexec}", "."]
|
%W[
|
||||||
|
--verbose
|
||||||
|
--global
|
||||||
|
--prefix=#{libexec}
|
||||||
|
#{Dir.pwd}/#{pack}
|
||||||
|
]
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.local_npm_install_args
|
def self.local_npm_install_args
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user