2016-04-28 93 views
2

我開發了一個使用npm的Angular 2應用程序,作爲一名新手,我不知道下面的一些方法。 當我發佈我使用npm publish,以便它在網上發佈應用程序的npm帳戶。 所以,在這裏,有沒有什麼辦法在本地主機上發佈我們的應用程序,因爲我不想使用npm帳戶,我只需要避免在發佈時使用node_modules文件夾? 如果有其他方式,可以用來在npm以外的本地發佈Angular2應用程序,請告訴我,我試試。關於發佈Angular 2應用程序

如果無法在沒有npm網絡帳戶的情況下發布應用程序,請讓我知道。 藉口錯誤,如果有的話。謝謝!)

+1

你能不能更加詳細一些 ? angular2應用程序可以使用'npm start'在本地運行。我不確定當你說發佈時你想做什麼 –

+0

我想在發佈時避免devdependency文件(node_modules),它的發生,但我的應用程序發佈在npm帳戶上,然後當我運行命令'npm myapp'時在本地主機上安裝。相反,我想直接在我的本地主機上發佈。有沒有辦法做到這一點?通過使用Gulp還是其他?如果不行,沒問題,讓我知道。 –

+0

@sridhar你的意思是「發佈到本地主機」。你想要發佈什麼?更具體一些,否則我們將無法幫助你,對不起。 – Dinistro

回答

6

npm publish是使圖書館包可用於其他免費使用。

這不是您用來製作Web應用程序的可用選項。這就是所謂的部署。 對於部署,通常執行構建步驟,將TS轉換爲JS,並將它們合併到一個文件中,以減少瀏覽器爲獲取應用程序的所有源文件而需要創建的請求數量。它也可以內聯組件HTML和CSS。這個構建步驟還可以縮小和修改JS代碼,以進一步減少生成的文件大小。

可以將結果輸出複製到任何Web服務器可以在本地機器上或Web託管服務提供商的某臺機器上爲瀏覽器提供的任何目錄。

根據您的設置有不同的方式來建立您的應用程序。

見例如How to deploy Angular 2 application developed in Typescript to production?

+0

我仍然有一些疑慮,我認爲有一個選擇,使用npm在私人網絡服務器上發佈我們的應用程序,如果是這樣,我該怎麼做?請幫助我 –

+0

您可以運行您的私有npm存儲庫來託管圖書館軟件包,但不提供您的Web應用程序,它只是允許您從該服務器「npm install」一個軟件包。如果你想運行你想要部署它的Web應用程序,不要發佈。 –

0

據我所知,node_modules包含typescript transpilers和一些其他的依賴關係。因此無法使用node_modules發佈應用程序。

也許你可以嘗試使用PlnkrjsFiddle

,您可以進行網上使用CDN鏈接,node_modules進口併發布應用程序。

與其他替代方案相比,這將很容易。

希望這有助於。

+0

我認爲node_modules文件是devdependencies,而不是依賴關係,對不對? DevDependencies在開發之後可以忽略不計。像angular2.dev.js,system.js這樣的一些文件是dependencies.so,所以我們甚至需要在發佈之後正確?! –

1

你需要browserify,這是所有

瀏覽器需要將所有的js文件的引用要放在HTML,他們不明白節點的形成模塊的依賴require()方法

browserify所做的是遍歷項目的整個依賴關係圖,遞歸地將從給定根開始的所有必需模塊捆綁到一個js文件中

通過節點包管理器安裝

npm install -g browserify 

用它來捆綁所有需要的模塊在main.js

browserify main.js -o bundle.js 

盯着現在把一個簡單的腳本代碼到你的HTML

<script src="bundle.js"></script>