我正在尝试设置一个流浪汉环境来运行angular-2 cli ...
这是我的Vagranfile:
Vagrant.configure("2") do |config|
config.vm.box = "hashicorp/precise64"
config.vm.provision :shell, path: "vagrant-provision-npm-angular-2.sh"
end
这是我的vagrant-provision-npm-angular-2.sh
#! /bin/bash
echo "prereqs install openssl"
sudo apt-get install libssl1.0.0
echo "prereqs install ntp"
sudo apt-get install ntp -y
sudo service ntp stop
sudo ntpd -gq
sudo service ntp start
echo "prereqs install curl"
sudo apt-get update && sudo apt-get install curl -y
echo "install zip"
sudo apt-get install unzip
echo "create directory"
mkdir /downloads -p
pushd /downloads
echo "install python 2.7"
sudo apt-get install python2.7 -y
echo "get pip"
curl -O https://bootstrap.pypa.io/get-pip.py
echo "execute get-pip.py"
sudo python get-pip.py
popd
echo "install aws cli"
sudo pip install awscli
echo "install nodejs"
curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
sudo apt-get install -y nodejs
echo "update npm"
npm install npm@latest -g
echo "intall angular cli (beta- require Node 4 or higher, together with NPM 3 or higher)"
npm install -g angular-cli
似乎所有内容都安装正常,但是当我使用“npm install”运行“npm install”来编译根目录时,我收到以下错误:
vagrant@precise64:/vagrant$ sudo npm install
> ng2-uploader@1.5.7 postinstall /vagrant/node_modules/ng2-uploader
> ngc -p tsconfig.json
Error: Error Cannot find type definition file for 'node'.
at Object.check (/vagrant/node_modules/@angular/compiler-cli/node_modules/@angular/tsc-wrapped/src/tsc.js:31:15)
at Object.main (/vagrant/node_modules/@angular/compiler-cli/node_modules/@angular/tsc-wrapped/src/main.js:26:15)
at Object.<anonymous> (/vagrant/node_modules/@angular/compiler-cli/src/main.js:16:9)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.runMain (module.js:604:10)
at run (bootstrap_node.js:394:7)
Compilation failed
npm WARN @angular/core@2.4.2 requires a peer of rxjs@^5.0.1 but none was installed.
npm WARN @angular/core@2.4.2 requires a peer of zone.js@^0.7.2 but none was installed.
npm ERR! Linux 3.2.0-23-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install"
npm ERR! node v6.9.4
npm ERR! npm v4.0.5
npm ERR! code ELIFECYCLE
npm ERR! ng2-uploader@1.5.7 postinstall: `ngc -p tsconfig.json`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the ng2-uploader@1.5.7 postinstall script 'ngc -p tsconfig.json'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the ng2-uploader package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! ngc -p tsconfig.json
npm ERR! You can get information on how to open an issue for this project with:
npm ERR! npm bugs ng2-uploader
npm ERR! Or if that isn't available, you can get their info via:
npm ERR! npm owner ls ng2-uploader
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR! /vagrant/npm-debug.log
更新:我认为这可能与Angular-cli没有正确安装有关...(仍然不知道如何解决这个问题)
vagrant@precise64:/vagrant$ ng help
Cannot find module 'autoprefixer'
Error: Cannot find module 'autoprefixer'
at Function.Module._resolveFilename (module.js:469:15)
at Function.Module._load (module.js:417:25)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/vagrant/node_modules/angular-cli/models/webpack-build-common.js:7:20)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/vagrant/node_modules/angular-cli/models/index.js:5:10)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/vagrant/node_modules/angular-cli/models/webpack-config.js:5:10)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/vagrant/node_modules/angular-cli/tasks/build-webpack.js:6:24)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/vagrant/node_modules/angular-cli/commands/build.js:3:23)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Class.includedCommands (/vagrant/node_modules/angular-cli/addon/index.js:21:16)
at /vagrant/node_modules/angular-cli/angular-cli/lib/models/project.js:392:61
at Array.forEach (native)
at Project.addonCommands (/vagrant/node_modules/angular-cli/angular-cli/lib/models/project.js:391:15)
at Project.eachAddonCommand (/vagrant/node_modules/angular-cli/angular-cli/lib/models/project.js:426:30)
at module.exports (/vagrant/node_modules/angular-cli/angular-cli/lib/cli/lookup-command.js:33:13)
at CLI.<anonymous> (/vagrant/node_modules/angular-cli/angular-cli/lib/cli/cli.js:34:26)
at tryCatch (/vagrant/node_modules/angular-cli/node_modules/rsvp/dist/lib/rsvp/-internal.js:215:12)
at invokeCallback (/vagrant/node_modules/angular-cli/node_modules/rsvp/dist/lib/rsvp/-internal.js:230:13)
at publish (/vagrant/node_modules/angular-cli/node_modules/rsvp/dist/lib/rsvp/-internal.js:198:7)
at flush (/vagrant/node_modules/angular-cli/node_modules/rsvp/dist/lib/rsvp/asap.js:85:5)
at _combinedTickCallback (internal/process/next_tick.js:67:7)
at process._tickCallback (internal/process/next_tick.js:98:9)
答案 0 :(得分:0)
您的问题是,vagrant以root用户身份运行您的配置脚本,因此所有内容都已安装,但是对于root用户,您希望该工具在vagrant
用户下可用。
在Vagrantfile中进行以下更改
Vagrant.configure("2") do |config|
config.vm.box = "hashicorp/precise64"
config.vm.provision :shell, path: "vagrant-provision-npm-angular-2.sh", privileged: "false"
end
请注意,当您进入虚拟机(vagrant ssh
)时,您无需运行sudo npm install
只需运行npm install
即可