日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

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

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

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

設(shè)置

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

首先安裝Docker 和 VS Code,然后在 VS Code 中安裝 Remote — Containers 擴(kuò)展,并確保Docker 可在你的機(jī)器上正常運(yùn)行。

打開(kāi)項(xiàng)目,在根目錄下創(chuàng)建一個(gè)名為 .devcontainer 的文件夾。這個(gè)新文件夾內(nèi)包含開(kā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}

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

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

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

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

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

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

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

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

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

常見(jiàn)問(wèn)題和解決方法

你可以利用 VS Code 終端運(yùn)行任何腳本或命令,因?yàn)樗驮谌萜鞯墓ぷ鲄^(qū)中。但是如果想使用macOS 的“Terminal”等其他工具,則需要找到容器,然后執(zhí)行docker exec。

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

并非適合所有人

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

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

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

總結(jié)

這是一個(gè)相對(duì)較新的概念,有許多地方需要探索,而且也有很多限制需要解決。我個(gè)人很喜歡這種方式,而且也比較推薦。如果你也采用了這種方式,請(qǐng)?jiān)谙路搅粞苑窒砟愕慕?jīng)驗(yàn)。

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

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

文章轉(zhuǎn)載:CSDN

責(zé)任編輯:haq

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

    關(guān)注

    0

    文章

    536

    瀏覽量

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

    關(guān)注

    30

    文章

    4977

    瀏覽量

    74428

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

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

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    想在引導(dǎo)加載程序運(yùn)行時(shí)擦除和寫(xiě)入應(yīng)用程序,否需要配置 PreTaskHook 第二張圖片中提到的內(nèi)核 MPU?

    嗨,Application 和 Bootloader 的內(nèi)存分布如下。如果我們想在引導(dǎo)加載程序運(yùn)行時(shí)擦除和寫(xiě)入應(yīng)用程序,并且已經(jīng)啟用了啟動(dòng)時(shí)的交流負(fù)載,我們是否需要配置 PreTas
    發(fā)表于 04-28 07:11

    FRDM-MCXE247的設(shè)計(jì)以及如何導(dǎo)入和運(yùn)行ACH示例

    :gs-frdm-mcxe247 應(yīng)用程序代碼中心 我們提供多種MCXE247應(yīng)用程序代碼中心示例.您可以從以下鏈接中找到項(xiàng)目代碼,并將其導(dǎo)入到 MCUXpresso IDE 中進(jìn)行運(yùn)行
    發(fā)表于 04-27 07:53

    TMS320F28xxx DSP:從內(nèi)部閃存運(yùn)行應(yīng)用程序的全面指南

    TMS320F28xxx DSP:從內(nèi)部閃存運(yùn)行應(yīng)用程序的全面指南 嵌入式系統(tǒng)設(shè)計(jì),讓應(yīng)用程序
    的頭像 發(fā)表于 04-23 13:40 ?184次閱讀

    EtherCAT應(yīng)用示例,GOAL 應(yīng)用說(shuō)明

    應(yīng)用程序的文件可以放置目錄。請(qǐng)注意相關(guān)文件的文件描述以獲取更多信息。 應(yīng)用/goal_ecat/00_rpc_cc 此應(yīng)用程序必須在設(shè)備的通信核心上
    發(fā)表于 04-23 08:19

    FRDM-MCXE31B的設(shè)計(jì)以及如何導(dǎo)入和運(yùn)行ACH示例

    /products/mcx-e31 應(yīng)用程序代碼中心 我們提供多種 MCXE31B應(yīng)用程序代碼中心示例.您可以從以下鏈接中找到項(xiàng)目代碼,并將其導(dǎo)入到 MCUXpresso IDE 中進(jìn)行運(yùn)
    發(fā)表于 04-21 09:10

    構(gòu)建示例應(yīng)用程序MCSPTR2AK396的問(wèn)題求解

    顯示任何消息。 此外,如果我選擇“更新代碼”,則所有驅(qū)動(dòng)程序都將從項(xiàng)目中刪除。 關(guān)于我遺漏了什么有什么提示嗎? 安裝的軟件堆棧與示例應(yīng)用程序的發(fā)行說(shuō)明測(cè)試的軟件堆棧幾乎相同
    發(fā)表于 04-20 13:11

    飛凌嵌入式ElfBoard-環(huán)境變量之獲取環(huán)境變量

    讀。應(yīng)用程序,可以通過(guò)多種方式獲取當(dāng)前運(yùn)行環(huán)境環(huán)境變量,main()函數(shù)的參數(shù),geten
    發(fā)表于 03-13 08:50

    請(qǐng)問(wèn)如何構(gòu)建和運(yùn)行視頻編解碼器示例應(yīng)用程序?

    如何構(gòu)建和運(yùn)行視頻編解碼器示例應(yīng)用程序?
    發(fā)表于 03-10 06:27

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

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

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

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

    nordic NRF54藍(lán)牙設(shè)備Google Pixel 10上“聽(tīng)診”藍(lán)牙信道示例

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

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

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

    如何將Flash刷寫(xiě)程序放到SRAM運(yùn)行?

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

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

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

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

    使用 CyU3PSysWatchDogClear() 喂養(yǎng)看門狗后,應(yīng)用程序運(yùn)行順利。 但是,當(dāng)我刪除 CyU3PSysWatchDogClear() 函數(shù)時(shí),應(yīng)用程序 5 秒后重置
    發(fā)表于 05-14 06:40
    从化市| 乌鲁木齐县| 马边| 松原市| 肇东市| 嘉定区| 潞西市| 广灵县| 博罗县| 东阳市| 雅安市| 西宁市| 宜良县| 龙里县| 新田县| 昌平区| 西畴县| 铁岭县| 保山市| 余姚市| 水城县| 汉沽区| 平潭县| 安化县| 昌吉市| 湖南省| 天祝| 宁国市| 石景山区| 舟曲县| 陆河县| 灯塔市| 沂源县| 太康县| 普兰县| 大庆市| 于田县| 密云县| 株洲市| 霍邱县| 赤壁市|