91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

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

3天內(nèi)不再提示

在Node環(huán)境中運行JavaScript應(yīng)用程序的示例

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

掃碼添加小助手

加入工程師交流群

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

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

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

所有這些工作都可以通過Docker 與 VS Code 的 Remote-Containers 擴展的結(jié)合來實現(xiàn)。

設(shè)置

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

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

打開項目,在根目錄下創(chuàng)建一個名為 .devcontainer 的文件夾。這個新文件夾內(nèi)包含開發(fā)容器所需的配置文件。

在 .devcontainer 中創(chuàng)建 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}

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

這一步是初始化開發(fā)容器,拉取 Docker 基礎(chǔ)鏡像、配置容器,然后啟動開發(fā)服務(wù)器。

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

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

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

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

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

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

應(yīng)用程序的運行不需要依賴操作系統(tǒng)。

常見問題和解決方法

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

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

并非適合所有人

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

高級用戶和經(jīng)驗豐富的開發(fā)人員可能不太喜歡這種方式,特別是有些人更喜歡其他代碼編輯器。這種設(shè)置方式可以作為備選,不要強迫開發(fā)人員運行容器,他們?nèi)匀豢梢允謩釉O(shè)置環(huán)境。

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

總結(jié)

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

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

作者 | Santhosh Sundar 譯者 | 彎月 責(zé)編 | 歐陽姝黎

文章轉(zhuǎn)載:CSDN

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 容器
    +關(guān)注

    關(guān)注

    0

    文章

    531

    瀏覽量

    22969
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4968

    瀏覽量

    73992

原文標題:利用 VS Code 構(gòu)建基于容器的開發(fā)環(huán)境

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

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    基于凌羽派的OpenHarmony北向應(yīng)用開發(fā):Hello World 示例應(yīng)用

    示例是基于OpenHarmony開發(fā)的第一個簡單應(yīng)用,用于展示如何創(chuàng)建、構(gòu)建和部署一個基本的應(yīng)用程序。環(huán)境配置如下所示:API:18SDK:OpenHarmony-v5.
    的頭像 發(fā)表于 02-25 10:23 ?177次閱讀
    基于凌羽派的OpenHarmony北向應(yīng)用開發(fā):Hello World <b class='flag-5'>示例</b>應(yīng)用

    ICU-X0201 Hello Chirp示例應(yīng)用用戶指南

    ICU-X0201 Hello Chirp示例應(yīng)用用戶指南 嵌入式產(chǎn)品中集成超聲傳感器時,開發(fā)合適的應(yīng)用程序是關(guān)鍵的一環(huán)。InvenSense的ICU-X0201 Hello Chirp示例
    的頭像 發(fā)表于 12-26 10:25 ?415次閱讀

    nordic NRF54藍牙設(shè)備Google Pixel 10上“聽診”藍牙信道示例

    說明如何使用 nRF Connect SDK 的藍牙信道探測反射器示例程序運行于 nRF54L15 SoC),配合搭載 Android 16 系統(tǒng)藍牙信道探測發(fā)起器及算法實現(xiàn)的 Google Pixel
    發(fā)表于 11-26 17:44

    如何在應(yīng)用程序調(diào)試期間分析棧和堆使用情況

    隨著 AMD Vitis 統(tǒng)一軟件平臺 2021.2 的發(fā)布,Vitis 引入了一個 Tcl 腳本,用于應(yīng)用程序運行的特定時間點協(xié)助查找棧和堆的內(nèi)存使用情況。該腳本已延續(xù)到后續(xù)的 Vitis 版本
    的頭像 發(fā)表于 10-24 16:54 ?897次閱讀
    如何在<b class='flag-5'>應(yīng)用程序</b>調(diào)試期間分析棧和堆使用情況

    如何在裸機環(huán)境運行KleidiAI微內(nèi)核

    ,對 KleidiAI 進行了簡要概述,并附有相關(guān)指南鏈接,其中詳細說明了 Linux 環(huán)境運行 KleidiAI 矩陣乘法 (matmul) 微內(nèi)核的分步操作,這份指南內(nèi)容詳實且
    的頭像 發(fā)表于 08-08 15:16 ?3840次閱讀
    如何在裸機<b class='flag-5'>環(huán)境</b><b class='flag-5'>中</b><b class='flag-5'>運行</b>KleidiAI微內(nèi)核

    FX3 UVC 無法與 Ubuntu 24.04 Cheese 或 Snapshot 相機應(yīng)用程序配合使用,怎么處理?

    `:運行一次,沒有問題。首次出現(xiàn)緩沖錯誤后啟動。但是,使用 libcamera 測試應(yīng)用程序“cam”和“qcam”,我可以毫無問題地傳輸數(shù)據(jù)。 如果能幫助檢查 wireshark 跟蹤是否存在處理
    發(fā)表于 07-16 06:37

    如何將Flash刷寫程序放到SRAM運行?

    客戶要求Flash driver不能存儲Flash,需要在升級的時候,由CAN FBL發(fā)送到SRAM,再運行SRAM的Flash d
    發(fā)表于 07-15 07:22

    【米爾RK3576開發(fā)板免費體驗】1、開發(fā)環(huán)境、鏡像燒錄、QT開發(fā)環(huán)境搭建以及應(yīng)用部署

    的設(shè)置如下。 完成上述配置后,即可進行QT應(yīng)用程序的開發(fā)和部署。 3、QT示例程序編譯和下載 Buildroot添加QT的示例程序選項
    發(fā)表于 07-14 11:26

    外圍設(shè)備通過手機連接到BLE應(yīng)用程序,為什么不能連接到Infineaon BLE?

    ; key_ch06_ex01_ \" observer 項目創(chuàng)建了 BLE 中央應(yīng)用程序。 但是它無法掃描附近藍牙的任何設(shè)備。 它進入高掃描模式 5 秒鐘,進入低掃描模式 5 秒鐘然后停止。 不顯示任何主機 ID,包括我的外圍設(shè)備。
    發(fā)表于 07-07 08:06

    如何在樹莓派上安裝并運行 Arduino 集成開發(fā)環(huán)境!

    使用樹莓派單板計算機,你可以運行各種應(yīng)用程序,包括廣受歡迎的Arduino集成開發(fā)環(huán)境(IDE)。這意味著你可以用它輕松地為通過USB連接到樹莓派計算機的微控制器編程,以創(chuàng)建交互式電子項目。下面
    的頭像 發(fā)表于 07-01 17:41 ?4359次閱讀
    如何在樹莓派上安裝并<b class='flag-5'>運行</b> Arduino 集成開發(fā)<b class='flag-5'>環(huán)境</b>!

    HarmonyOS5云服務(wù)技術(shù)分享--ArkTS開發(fā)Node環(huán)境

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

    將SDK從版本1.3.4更新至1.3.5后,cyfx3s_msc應(yīng)用程序的看門狗定時器出現(xiàn)故障怎么解決?

    使用 CyU3PSysWatchDogClear() 喂養(yǎng)看門狗后,應(yīng)用程序運行順利。 但是,當(dāng)我刪除 CyU3PSysWatchDogClear() 函數(shù)時,應(yīng)用程序 5 秒后重置
    發(fā)表于 05-14 06:40

    部署計算機上運行 LabVIEW 應(yīng)用程序時出現(xiàn)以下錯誤: “缺少外部函數(shù) dll...”解決辦法

    如果你既有 DLL 文件,也有頭 (.h) 文件,那么可以使用共享庫批量生成VI,不用再一個一個使用“調(diào)用庫函數(shù)節(jié)點”來調(diào)用DLL,源代碼運行是沒有問題,一旦生成應(yīng)用程序報錯缺失外部函數(shù)或者外部函數(shù)
    發(fā)表于 04-01 19:10

    【教程】Node-REDChirpstack節(jié)點使用指南

    物聯(lián)網(wǎng)應(yīng)用開發(fā),LoRaWAN技術(shù)因其低功耗、遠距離傳輸?shù)忍攸c而備受關(guān)注。Chirpstack作為最流行的LoRaWAN服務(wù)器之一,與Node-RED的集成為我們提供了強大的物聯(lián)網(wǎng)應(yīng)用開發(fā)能力
    的頭像 發(fā)表于 03-27 19:33 ?1280次閱讀
    【教程】<b class='flag-5'>Node</b>-RED<b class='flag-5'>中</b>Chirpstack節(jié)點使用指南

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

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