在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

在Node環境中運行JavaScript應用程序的示例

馬哥Linux運維 ? 來源:CSDN ? 作者:Santhosh Sundar ? 2021-06-24 16:12 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

長話短說,你可以使用 Docker 和 VS Code 的遠程容器來建立一個容器化的本地開發環境,這樣就可以讓團隊成員盡快完成入門培訓。你不僅可以在所有環境中使用同一個基礎鏡像,而且還可以為所有開發人員提供相同的編輯器,此外還更容易標準化實現。但這種方法并非適合所有人,如果你不喜歡 VS Code 作為代碼編輯器的話,則可以跳過本文,除非你想嘗試一下。為團隊設置本地開發環境時,我們所面臨的挑戰之一就在于,確保所有開發人員的設置都相同或者能夠滿足需求。這個問題常見的解決方法是制定入門指南,并希望開發人員遵循這些指南。但是,由于版本兼容性問題和個人經驗等問題,導致我們無法使用正確的工具,因此實現統一的環境設置實則困難重重。

另外一種解決方案是,準備一個預先配置好的開發環境,其中包含了所有必需的庫及依賴項,該環境可以直接作為容器啟動。這樣,開發人員就可以在容器提供的隔離環境中工作了。這種方式可以極大地減少開發人員花費在克隆代碼庫上的時間。

除了為所有開發人員提供相同的環境之外,我們還可以在 Visual Studio Code 中使用同一套工具、擴展甚至主題集。盡管這不是必須的,但我們可以利用它來自動安裝項目所需的特定擴展。這種方式可以避免工具的不一致,而且開發人員也可以免卻手動安裝的麻煩。

所有這些工作都可以通過Docker 與 VS Code 的 Remote-Containers 擴展的結合來實現。

設置

在本文中,我將展示一個在 Node 環境中運行 JavaScript 應用程序的示例。有關的詳細說明請參見官方文檔(https://code.visualstudio.com/docs/remote/containers)。

首先安裝Docker 和 VS Code,然后在 VS Code 中安裝 Remote — Containers 擴展,并確保Docker 可在你的機器上正常運行。

打開項目,在根目錄下創建一個名為 .devcontainer 的文件夾。這個新文件夾內包含開發容器所需的配置文件。

在 .devcontainer 中創建 Dockerfile 和 devcontainer.json,并添加以下配置。

# Specify the base image you want your dev container to use.

# You may use the same exact base image your application would use in production for consistancy.

# That could prevent surprises such as “works in local, but not in PROD”.FROM node:14.17.0-alpine

# Additionally you can install other dependencies for the environment while configuring the base image.# In this example, I am installing Git as the Alpine version of node does not come with one.

RUN apk updateRUN apk add git

{“name”: “DevContainer ReactApp”,

// Provide the dev container with a Dockerfile that it can use to build an image and run the container.“dockerFile”: “Dockerfile”,

// Command(s) to run before the container is created.// In this case we are installing the node modules.“initializeCommand”: “yarn install”,

// Starts the development server every time the container starts.// This is triggered on reopening the container as well.“postStartCommand”: “yarn start”,

// Forward your application‘s port(s) running in the container to the local machine.“forwardPorts”: [3000],

// Required VSC code extensions that you want to automatically install for the developers to use.

“extensions”: [“dbaeumer.vscode-eslint”,“esbenp.prettier-vscode”,“eamodio.gitlens”]// Use the devcontainer.json reference to explore all possible configurations.// https://code.visualstudio.com/docs/remote/devcontainerjson-reference}

在完成上述工作后,我們來構建容器。首先,點擊VS Code 命令面板中的“Open Folder in Container”或“Reopen in Container”。

這一步是初始化開發容器,拉取 Docker 基礎鏡像、配置容器,然后啟動開發服務器。

完成這一步,你就應該能夠在瀏覽器中訪問應用程序,并正常使用 VS Code 進行開發了。就連熱重載都能正常工作!我創建了一個代碼庫(https://github.com/Gigacore/devcontainer-react-example),其中包含一個示例,你可以嘗試一下!

容器的構建和配置只需要執行一次,但是需要一定的時間。以后如果不發生變化,那么重建會更快。但是,如果 devcontainer.json 或 Dockerfile 發生變化,則需要重新構建。如果你嘗試直接重新打開,系統會提示你重建。

在退出容器或 VS Code 后,下一次可以通過 ”Reopen in Container” 選項重新進入容器。該選項會啟動已配置的容器,并再次啟動開發服務器。如果VS Code 在代碼庫中找到 .devcontainer 配置,則會自動提示你啟動容器。

容器和本地計算機之間的文件系統是同步的,因此你可以通過任一環境訪問代碼。

你可以運行任意多個應用程序,即便它們需要不同版本依賴項,而無需在計算機上安裝或修改任何應用程序。

團隊中的任何人都可以在自己的計算機上運行應用程序,編寫和審核代碼,或者做一些嘗試,包括非技術成員。

應用程序的運行不需要依賴操作系統

常見問題和解決方法

你可以利用 VS Code 終端運行任何腳本或命令,因為它就在容器的工作區中。但是如果想使用macOS 的“Terminal”等其他工具,則需要找到容器,然后執行docker exec。

由于應用程序在 Docker 容器內運行,因此它可以使用的資源(CPU、內存等)很有限。默認限制在大多數情況下都沒有問題。但是,對于有些應用程序,你可能需要在Docker選項中提高這些資源限制,以避免發生卡頓現象。

并非適合所有人

雖然這種做法可以降低構建開發環境的難度,但是對于需要在容器范圍之外的環境中進行廣泛集成和配置的應用程序來說并不理想。

高級用戶和經驗豐富的開發人員可能不太喜歡這種方式,特別是有些人更喜歡其他代碼編輯器。這種設置方式可以作為備選,不要強迫開發人員運行容器,他們仍然可以手動設置環境。

如果應用程序占用了大量資源,則運行 Docker 容器可能會消耗更多資源。

總結

這是一個相對較新的概念,有許多地方需要探索,而且也有很多限制需要解決。我個人很喜歡這種方式,而且也比較推薦。如果你也采用了這種方式,請在下方留言分享你的經驗。

原文鏈接:https://santhoshsundar.medium.com/building-container-based-development-environment-with-visual-studio-code-2d7111c650bd

作者 | Santhosh Sundar 譯者 | 彎月 責編 | 歐陽姝黎

文章轉載:CSDN

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 容器
    +關注

    關注

    0

    文章

    508

    瀏覽量

    22407
  • 代碼
    +關注

    關注

    30

    文章

    4892

    瀏覽量

    70428

原文標題:利用 VS Code 構建基于容器的開發環境

文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    HarmonyOS5云服務技術分享--ArkTS開發Node環境

    ? 你好呀,開發者小伙伴們!今天我們來聊聊如何在HarmonyOS(ArkTS API 9及以上)玩轉云函數,特別是結合Node.js和HTTP觸發器的開發技巧。文章會手把手帶你從零開始,用最接地
    發表于 05-22 17:21

    【干貨】什么是Node-RED?一文帶你了解!

    ,允許用戶通過拖拽和連接預定義的節點(Nodes)來構建應用程序。根據不同的節點實現不同的功能,例如硬件節點,存儲節點、計算節點或者邏輯處理節點。通過連接這些節點,
    的頭像 發表于 03-13 19:32 ?712次閱讀
    【干貨】什么是<b class='flag-5'>Node</b>-RED?一文帶你了解!

    OpenVINO?運行應用程序失敗怎么解決?

    嘗試 OpenVINO? 運行我的推理應用程序失敗,并出現以下錯誤: RuntimeError: Check \'false\' failed at src/core/src/ru
    發表于 03-05 10:29

    是否可以使用OpenVINO?部署管理器部署機器上運行Python應用程序

    使用 OpenVINO?部署管理器創建運行時軟件包。 將運行時包轉移到部署機器。 無法確定是否可以部署機器上運行 Python
    發表于 03-05 08:16

    Bun 1.2震撼發布:全力挑戰Node.js生態的JavaScript運行時新星

    了與 Node.js 的兼容性,還為開發者帶來了內置的數據庫支持和云服務集成能力,進一步強化了其“全能工具包”的定位。Node.js 兼容性獲得突破性進展在此次更新,最引人注目的是 Bun
    的頭像 發表于 01-24 10:42 ?736次閱讀
    Bun 1.2震撼發布:全力挑戰<b class='flag-5'>Node</b>.js生態的<b class='flag-5'>JavaScript</b><b class='flag-5'>運行</b>時新星

    android手機上emulate應用程序的方法

    Android手機上模擬(emulate)應用程序的方法通常涉及到使用Android模擬器(Emulator)或類似的工具來模擬Android環境,以便在沒有實際物理設備的情況下運行
    的頭像 發表于 12-05 15:33 ?1139次閱讀

    使用OpenVINO? ElectronJS創建桌面應用程序

    的用戶體驗。 1 應用程序概覽:一種簡單的背景虛化方法 這個演示展示了如何在 Node.js 環境中使用 OpenVINO 工具包實現背景虛化,并通過 Electron.js 創建的直觀桌面界面進行
    的頭像 發表于 11-25 11:35 ?531次閱讀
    使用OpenVINO? ElectronJS<b class='flag-5'>中</b>創建桌面<b class='flag-5'>應用程序</b>

    Node.js小科普和Node.js安裝常見管理工具

    Node.js是一個JavaScript運行環境,用來執行JavaScript代碼。 為什么會出現這么一個
    的頭像 發表于 11-23 15:37 ?391次閱讀
    <b class='flag-5'>Node</b>.js小科普和<b class='flag-5'>Node</b>.js安裝常見管理工具

    Docker運行環境安裝

    、發布、測試和部署,可以幫助開發人員將最新版本代碼應用到生產環境。 Docker可以安裝在多個平臺中,包括Mac、Windows和Linux。不過,生產環境還是推薦Linux上
    的頭像 發表于 10-29 11:28 ?612次閱讀

    TMS320C6000 DMA示例應用程序

    電子發燒友網站提供《TMS320C6000 DMA示例應用程序.pdf》資料免費下載
    發表于 10-26 10:17 ?0次下載
    TMS320C6000 DMA<b class='flag-5'>示例</b><b class='flag-5'>應用程序</b>

    PCM2912A應用程序的操作環境

    電子發燒友網站提供《PCM2912A應用程序的操作環境.pdf》資料免費下載
    發表于 10-21 09:53 ?1次下載
    PCM2912A<b class='flag-5'>應用程序</b>的操作<b class='flag-5'>環境</b>

    PCM2912應用程序的操作環境

    電子發燒友網站提供《PCM2912應用程序的操作環境.pdf》資料免費下載
    發表于 10-21 09:33 ?0次下載
    PCM2912<b class='flag-5'>應用程序</b>的操作<b class='flag-5'>環境</b>

    使用OpenVINO GenAI APIC++構建AI應用程序

    許多桌面應用程序是使用 C++ 開發的,而將生成式AI(GenAI)功能集成到這些應用程序可能會很具有挑戰性,尤其是因為使用像 Hugging Face 這樣的 Python 庫的復雜性。C++
    的頭像 發表于 10-12 09:36 ?1083次閱讀
    使用OpenVINO GenAI API<b class='flag-5'>在</b>C++<b class='flag-5'>中</b>構建AI<b class='flag-5'>應用程序</b>

    工程師必備!Node.js和常見管理工具介紹(附操作演示)

    現代軟件開發JavaScript已成為一種廣泛使用的編程語言,web前端開發、后端開發、移動應用端開發等領域中都有它的身影。本文中
    的頭像 發表于 08-30 12:34 ?534次閱讀
    工程師必備!<b class='flag-5'>Node</b>.js和常見管理工具介紹(附操作演示)

    項目同時勾上node和provisioner,運行provisioner程序,機器出現不斷重啟怎么解決?

    項目同時勾上node和provisioner。運行provisioner程序,機器出現不斷重啟。請問這個有解決方案了嗎?求大佬解惑。
    發表于 06-28 11:58
    主站蜘蛛池模板: 国产免费黄视频 | 亚洲qingse | 蜜月mv国产精品 | 人与禽一级一级毛片 | 永井玛丽亚中文在线观看视频 | 色涩在线 | 大乳妇女bd视频在线观看 | 操综合| 手机看片a永久免费看大片 手机毛片 | 禁漫画羞羞动漫入口 | 一级视频在线播放 | tom影院亚洲国产一区二区 | 啪视频免费 | 色01视频| 日本黄页视频 | 狠狠干一区 | 黑人又大又粗又长又深受不了 | 欧美色天使 | 嫩草影院国产 | 天天草天天干天天 | 在线看欧美成人中文字幕视频 | bt 电影天堂 | 欧美黄色片免费看 | 一级特黄a免费大片 | 国产精品美乳在线观看 | 中文天堂在线最新2022更新 | 国产性较精品视频免费 | 天天噜天天干 | 色综色| 国产成+人+综合+亚洲欧美丁香花 | 757一本到午夜宫 | 香蕉视频在线观看黄 | 丁香六月欧美 | 欧美精品久久久久久久小说 | 亚洲伦理一区二区 | 天天色国产 | 在线天堂中文在线网 | 日韩毛片在线看 | 国产精品天天操 | 天堂中文字幕在线观看 | 色图综合网 |