在VSTS / TFS中运行webpack,找不到webpack

在VSTS的构build过程中,我运行npm install -g webpack然后将npm install webpack与工作目录设置为网站项目目录(project.json和其他主文件所在的目录,而不是解决scheme目录)。

然后我在命令行任务中运行where webpack

Get-Command -CommandType Application -ErrorAction SilentlyContinue -Name webpack | Select-Object -ExpandProperty Definition | echo Get-Command -CommandType Application -ErrorAction SilentlyContinue -Name webpack | Select-Object -ExpandProperty Definition | echo 在PowerShell任务Get-Command -CommandType Application -ErrorAction SilentlyContinue -Name webpack | Select-Object -ExpandProperty Definition | echo

他们都只返回空string。

所以显然webpack -p作为下一个命令只返回“not found”types的响应。

The term 'webpack' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

这里是全球的npm列表:

 2016-11-04T15:11:38.0395583Z ##[section]Starting: npm install 2016-11-04T15:11:38.6826226Z [command]C:\Program Files\nodejs\npm.cmd install -g webpack 2016-11-04T15:11:48.7566299ZC:\Users\SrvBuildAgentUser\AppData\Roaming\npm\webpack -> C:\Users\SrvBuildAgentUser\AppData\Roaming\npm\node_modules\webpack\bin\webpack.js 2016-11-04T15:11:48.8726415ZC:\Users\SrvBuildAgentUser\AppData\Roaming\npm 2016-11-04T15:11:48.8726415Z `-- webpack@1.13.3 2016-11-04T15:11:48.8726415Z 2016-11-04T15:11:48.8736416Z npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules\webpack\node_modules\chokidar\node_modules\fsevents): 2016-11-04T15:11:48.8976440Z npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.0.15: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"}) 2016-11-04T15:11:48.9066449Z ##[section]Finishing: npm install 

对于没有全球的人来说:

 2016-11-04T15:11:48.9086451Z ##[section]Starting: npm install 2016-11-04T15:11:49.5467089Z [command]C:\Program Files\nodejs\npm.cmd install webpack 2016-11-04T15:11:56.8194361Z asp.net@1.0.0 C:\agent_work\10\s\mySolution.WebSite\src\mySolution.WebSite 2016-11-04T15:11:56.8204362Z +-- UNMET DEPENDENCY rxjs@5.0.0-beta.12 2016-11-04T15:11:56.8204362Z `-- webpack@1.13.3 2016-11-04T15:11:56.8204362Z 2016-11-04T15:11:56.8214363Z npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.0.0 (node_modules\chokidar\node_modules\fsevents): 2016-11-04T15:11:56.8214363Z npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.0.15: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"}) 2016-11-04T15:11:56.8224364Z npm WARN asp.net@1.0.0 requires a peer of rxjs@5.0.0-beta.12 but none was installed. 2016-11-04T15:11:56.8504392Z ##[section]Finishing: npm install 

然后webpack -p将会失败:

 2016-11-04T15:11:56.8524394Z ##[section]Starting: PowerShell Script 2016-11-04T15:11:56.9024444Z ##[command]. 'C:\Users\SrvBuildAgentUser\AppData\Local\Temp\d8093b24-25d4-4c1d-aeab-5f9f41abb954.ps1' 2016-11-04T15:11:57.9345476ZC:\agent_work\10\s\mySolution.WebSite\src\mySolution.WebSite 2016-11-04T15:11:58.4295971Z ##[error]webpack : The term 'webpack' is not recognized as the name of a cmdlet, functio n, script file, or operable program. Check the spelling of the name, or if a pa th was included, verify that the path is correct and try again. At C:\Users\SrvBuildAgentUser\AppData\Local\Temp\d8093b24-25d4-4c1d-aeab-5f9f41 abb954.ps1:7 char:1 + webpack -p + ~~~~~~~ + CategoryInfo : ObjectNotFound: (webpack:String) [], CommandNotF oundException + FullyQualifiedErrorId : CommandNotFoundException 2016-11-04T15:11:58.4355977Z ##[error]Process completed with exit code 0 and had 1 error(s) written to the error stream. 2016-11-04T15:11:58.4375979Z ##[section]Finishing: PowerShell Script 

所以我甚至推了node_modules / .bin /回购,我试图运行node_modules\.bin\webpack

所以它find了webpack,但它弄乱了path,并不会find一些模块:

 2016-11-04T14:47:02.4346130Z ##[section]Starting: Run node_modules\.bin\webpack 2016-11-04T14:47:02.4366130Z ##[command]node_modules\.bin\webpack -p 2016-11-04T14:47:04.6596130Z Hash: 6a3774e770e7be6ac786 2016-11-04T14:47:04.6596130Z Version: webpack 1.13.3 2016-11-04T14:47:04.6596130Z Time: 925ms 2016-11-04T14:47:04.6596130Z Asset Size Chunks Chunk Names 2016-11-04T14:47:04.6596130Z vendor.bundle.js 734 bytes 0 [emitted] vendor 2016-11-04T14:47:04.6596130Z main.bundle.js 33.4 kB 1, 0 [emitted] main 2016-11-04T14:47:04.6596130Z [0] ./app/main.js 500 bytes {1} [built] [2 errors] 2016-11-04T14:47:04.6596130Z [1] ./app/Helpers.js 1.62 kB {1} [built] 2016-11-04T14:47:04.6596130Z [2] ./app/ProductAccessibilityValidator.js 2.06 kB {1} [built] [2 errors] 2016-11-04T14:47:04.6606130Z [3] ./app/UserProfileProvider.js 1.74 kB {1} [built] [3 errors] 2016-11-04T14:47:04.6606130Z [10] ./app/app.routing.js 1.93 kB {1} [built] [1 error] 2016-11-04T14:47:04.6606130Z [11] ./app/component.js 1.22 kB {1} [built] [1 error] 2016-11-04T14:47:04.6606130Z [20] ./app/module.js 4.09 kB {1} [built] [4 errors] 2016-11-04T14:47:04.6606130Z + 14 hidden modules 2016-11-04T14:47:04.6606130Z 2016-11-04T14:47:04.6606130Z WARNING in main.bundle.js from UglifyJs 2016-11-04T14:47:04.6606130Z Side effects in initialization of unused variable SearchResult [./app/components/search-page.component.js:20,0] 2016-11-04T14:47:04.6606130Z Side effects in initialization of unused variable SearchResult [./app/components/product-search.component.js:20,0] 2016-11-04T14:47:04.6606130Z 2016-11-04T14:47:04.6606130Z ERROR in ./app/main.js 2016-11-04T14:47:04.6606130Z Module not found: Error: Cannot resolve module '@angular/platform-browser-dynamic' in C:\agent_work\10\s\mySolution.WebSite\src\mySolution.WebSite\wwwroot\app 2016-11-04T14:47:04.6606130Z @ ./app/main.js 2:33-77 2016-11-04T14:47:04.6606130Z 2016-11-04T14:47:04.6606130Z ERROR in ./app/main.js 2016-11-04T14:47:04.6606130Z Module not found: Error: Cannot resolve module '@angular/core' in C:\agent_work\10\s\mySolution.WebSite\src\mySolution.WebSite\wwwroot\app 2016-11-04T14:47:04.6606130Z @ ./app/main.js 3:13-37 2016-11-04T14:47:04.6606130Z 2016-11-04T14:47:04.6606130Z ERROR in ./app/module.js 2016-11-04T14:47:04.6606130Z Module not found: Error: Cannot resolve module '@angular/core' in C:\agent_work\10\s\mySolution.WebSite\src\mySolution.WebSite\wwwroot\app 2016-11-04T14:47:04.6606130Z @ ./app/module.js 11:13-37 2016-11-04T14:47:04.6606130Z 2016-11-04T14:47:04.6606130Z ERROR in ./app/module.js 2016-11-04T14:47:04.6606130Z Module not found: Error: Cannot resolve module '@angular/platform-browser' in C:\agent_work\10\s\mySolution.WebSite\src\mySolution.WebSite\wwwroot\app 2016-11-04T14:47:04.6606130Z @ ./app/module.js 12:25-61 2016-11-04T14:47:04.6606130Z 2016-11-04T14:47:04.6606130Z ERROR in ./app/module.js 2016-11-04T14:47:04.6606130Z Module not found: Error: Cannot resolve module '@angular/forms' in C:\agent_work\10\s\mySolution.WebSite\src\mySolution.WebSite\wwwroot\app 2016-11-04T14:47:04.6606130Z @ ./app/module.js 13:14-39 2016-11-04T14:47:04.6606130Z 2016-11-04T14:47:04.6606130Z ERROR in ./app/module.js 2016-11-04T14:47:04.6606130Z Module not found: Error: Cannot resolve module '@angular/http' in C:\agent_work\10\s\mySolution.WebSite\src\mySolution.WebSite\wwwroot\app 2016-11-04T14:47:04.6606130Z @ ./app/module.js 14:13-37 2016-11-04T14:47:04.6606130Z 2016-11-04T14:47:04.6606130Z ERROR in ./app/app.routing.js 2016-11-04T14:47:04.6606130Z Module not found: Error: Cannot resolve module '@angular/router' in C:\agent_work\10\s\mySolution.WebSite\src\mySolution.WebSite\wwwroot\app 2016-11-04T14:47:04.6606130Z @ ./app/app.routing.js 2:15-41 2016-11-04T14:47:04.6606130Z 2016-11-04T14:47:04.6606130Z ERROR in ./app/component.js 2016-11-04T14:47:04.6616130Z Module not found: Error: Cannot resolve module '@angular/core' in C:\agent_work\10\s\mySolution.WebSite\src\mySolution.WebSite\wwwroot\app 2016-11-04T14:47:04.6616130Z @ ./app/component.js 11:13-37 2016-11-04T14:47:04.6616130Z 2016-11-04T14:47:04.6616130Z ERROR in ./app/UserProfileProvider.js 2016-11-04T14:47:04.6616130Z Module not found: Error: Cannot resolve module '@angular/core' in C:\agent_work\10\s\mySolution.Web## Heading ##Site\src\mySolution.WebSite\wwwroot\app 2016-11-04T14:47:04.6616130Z @ ./app/UserProfileProvider.js 14:13-37 2016-11-04T14:47:04.6616130Z 2016-11-04T14:47:04.6616130Z ERROR in ./app/UserProfileProvider.js 2016-11-04T14:47:04.6616130Z Module not found: Error: Cannot resolve module '@angular/http' in C:\agent_work\10\s\mySolution.WebSite\src\mySolution.WebSite\wwwroot\app 2016-11-04T14:47:04.6616130Z @ ./app/UserProfileProvider.js 15:13-37 2016-11-04T14:47:04.6616130Z 2016-11-04T14:47:04.6616130Z ERROR in ./app/components/product-search.component.js 2016-11-04T14:47:04.6616130Z Module not found: Error: Cannot resolve module '@angular/core' in C:\agent_work\10\s\mySolution.WebSite\src\mySolution.WebSite\wwwroot\app\components 2016-11-04T14:47:04.6616130Z @ ./app/components/product-search.component.js 14:13-37 15:13-37 2016-11-04T14:47:04.6616130Z 2016-11-04T14:47:04.6616130Z ERROR in ./app/components/product-search.component.js 2016-11-04T14:47:04.6616130Z Module not found: Error: Cannot resolve module '@angular/http' in C:\agent_work\10\s\mySolution.WebSite\src\mySolution.WebSite\wwwroot\app\components 2016-11-04T14:47:04.6616130Z @ ./app/components/product-search.component.js 16:13-37 (and so on) 

你能帮我解决这个问题吗?

原理草图

问题是节点的全局目录可能不在运行VSTS代理的用户的PATH中。 在全局安装之后,您可以使用C:\NPM\Modules\webpack来定位webpack cmd helper。