精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

為什么大多數開發者都答不上這個關于 package.json 的簡單前端面試題

開發 前端
每一個字段, 都在悄悄決定:這個項目是能在面試官的電腦上“一鍵跑起”, 還是在 CI、生產、用戶設備上,一次次翻車。忽視它,它會用最殘忍的方式回擊—— 從 npm start 的第一個報錯開始。理解它,項目的穩定性、可維護性和“面試可通過程度”, 都會肉眼可見地提高一大截。

前端世界從來不缺“教程”:

  • YouTube 教學視頻
  • Udemy 課程
  • Stack Overflow 回答
  • 甚至現在還有 ChatGPT、DeepSeek、Gemini 這一票 AI 助手

上面這些東西,統統已經在那里躺著,隨便點開就是一堆“手把手”。

但真正把人坑哭的,往往不是“不會寫代碼”, 而是——以為自己已經懂了,然后在細節上翻了車。

這篇就是專門拆這種翻車現場的:

  • 哪一步做錯了
  • 現場是什么慘狀
  • 后面是怎么把坑填上的
  • 以及,怎么避免下一次再踩進去

尤其是對初級 / 入門前端來說,有一個事實可能會讓人有點崩潰:

一個不起眼的文件,可以悄無聲息地決定—— 項目到底是跑得飛快,還是直接躺地不起。

這個文件,就是:package.json。

package.json 到底在掌控什么?

對 Node.js、React,甚至任何一個基于 JS 的工程來說, package.json 就是整個項目的“中樞神經”:

  • 所有依賴
  • 所有腳本命令
  • 所有構建入口

統統寫在這里。

一旦它亂了,整個項目就跟著一起垮。

有不少開發者第一次從 GitHub 把項目拉下來, 愉快地敲下:

npm start

然后迎面就是一句:

Error: Cannot find module 'express'

第一反應往往是:

“代碼是不是被改壞了?”

真相卻更簡單殘酷: ——package.json 里根本沒寫上 express 這條依賴。

下面這 9 個點,幾乎覆蓋了前端開發者在 package.json 上最常翻車的場景。

面試問到,一半人答不全; 項目遇到,一半人救不回來。

1. dependencies:撐起線上運行的“主食”

dependencies 這一欄,放的是:

代碼在“生產環境”真正需要的核心庫。

如果這里漏了一條,結果就是:項目壓根跑不起來。

一個正常的寫法,大致是這樣:

{
  "dependencies": {
    "express": "^4.18.2",
    "mongoose": "^8.1.0"
  }
}

常見翻車方式:

  • 本地 npm install 某庫,卻沒用 --save
  • 或者手動改 package.json,卻忘了真正安裝

結果就是經典報錯:

Error: Cannot find module 'package-name'

Fix:

重新安裝,并確保寫回 dependencies:

npm install express --save

或者更現代一點(npm 7+ 默認會寫入):

npm install express

只要記住一句話:


線上要用到的庫,全都該乖乖躺在 dependencies 下面。

2. devDependencies:只活在開發階段的“工具箱”

devDependencies 放的則是另一類東西:

  • 代碼質量工具:ESLint
  • 打包 / 轉譯工具:Babel
  • 測試框架:Jest 等

典型結構如下:

{
  "devDependencies": {
    "eslint": "^8.57.0",
    "jest": "^29.7.0"
  }
}

有些項目的生產事故就卡在這里—— 比如把 ESLint 放進了 dependencies

  • 線上服務器安裝了一堆完全沒必要的開發工具
  • 構建時間肉眼可見地被拖長
  • 鏡像體積也被白白撐大

Fix:

所有“只在開發期用”的東西,都建議用 --save-dev 安裝:

npm install eslint --save-dev

要記住的區分很簡單:

  • 跑業務邏輯、線上必須 → dependencies
  • 輔助開發、跑完就下班 → devDependencies

3. scripts:一個名字寫錯,命令全廢

"scripts" 是 package.json 里最高頻被用到的區域:

{
  "scripts": {
    "start": "node server.js",
    "dev": "nodemon server.js",
    "test": "jest",
    "build": "react-scripts build"
  }
}

NPM 有一條“隱藏規則”

  • npm start 會自動去找 "start" 對應的腳本
  • 如果壓根沒有 "start" 這一項, 那么終端就會一臉冷漠:什么都不會執行

不少新人會出于“好看”或者“自創約定”,把 start 改名:

"run": "node server.js"

然后困惑地問: “為什么 npm start 不動了?”

Fix:

無論腳本再多再花哨,**"start" 一項一定要留著**。 就算只是最簡單的:

"start": "node index.js"

這是 npm 世界里,最基礎、也是最經常被考察的一條共識。

4. type 字段:require 和 import 只能選一邊站

當某個項目在 package.json 里加上:

{
  "type": "module"
}

就等于對 Node.js 宣告:


“這是一個 ES Module 項目。”

緊接著,所有 require() 寫法會被視作“不合法”——

ReferenceError: require is not defined in ES module scope

于是整個項目開始一半 import、一半 require, 到處報錯,哭都不知道從哪兒開始。

Fix 分兩種路線:

如果項目已經大量用 require

  • 暫時不要加 "type": "module"
  • 或者只對部分文件使用 .mjs 擴展名來嘗鮮

如果準備全面擁抱 import/export

  • 把原有的 require / module.exports 逐步遷移
  • 修一修 Node 版本、打包工具配置

一句話:

"type": "module" 不是一個“順手就能加”的裝飾字段, 而是一條語法立場的選擇題。

5. bin:把腳本變成真正的命令行工具

當一個 npm 包希望被這樣使用時:

mardinjs build

就必須在 package.json 里聲明 **"bin"**:

{
  "bin": {
    "mardinjs": "./bin/mardin.js"
  }
}

比如有些庫(例如性能優化相關的工具包 mardinjs), 就是通過這種方式提供命令行能力。

常見翻車點:

  • 指向的 ./bin/mardin.js 根本不存在
  • 文件存在,卻沒有可執行權限
  • 或者忘記在文件頭部聲明解釋器

結果就是用戶一安裝,立刻看到:

Error: cannot find module './bin/mardin.js'

Fix:

確保路徑正確,文件真實存在。

文件頂部加上 shebang:

#!/usr/bin/env node

賦予可執行權限:

chmod +x ./bin/mardin.js

只要這三步走對,包就能像一條真正的 CLI 命令一樣被調用。

6. engines:被 Node 版本“反向教育”的那一刻

有些最糟糕的部署事故,表面看起來是“語法突然報錯”, 實際上是——線上 Node 版本根本帶不動本地寫好的代碼。

典型場景:

  • 本地用 Node 18 寫了各種:

可選鏈 ?.

空值合并 ??

  • 結果線上服務器還是 Node 14
  • 一上線,就是大面積語法崩潰

這時候,"engines" 字段就該出場了:

{
  "engines": {
    "node": ">=18.0.0",
    "npm": ">=8.0.0"
  }
}

它的作用是:

  • 告訴安裝者:這個項目最低需要什么版本的 Node / npm
  • 某些平臺(如某些云服務、包管理工具)會在不滿足時直接報警甚至拒絕構建

還可以配合 "engineStrict": true 做更強硬的限制。

對團隊協作和長期維護來說,這是一個非常值的“提前聲明”。

7. files:決定發到 npm 上的,究竟有哪些東西

當一個包要發布到 npm 時,**"files" 字段負責決定:**

哪些目錄、哪些文件,會真正被上傳。

例如:

{
  "files": ["dist", "bin"]
}

很常見的一次翻車,是:

  • 忘了把 dist(打包后的產物)寫進來
  • 發布之后,用戶安裝到本地
  • 結果下載到的是一個“只有源碼、沒有構建產物”的空殼

Fix:

  • 確認構建輸出目錄(如 distbuild)確實包含在 "files" 里
  • 或者通過 .npmignore 來排除不想發出去的文件

一句話:

“源碼寫得多好不重要, 用戶真正拿到的,是 files 指定的那一份。”

8. readme & 元數據:不僅是門面,也是“可維護性”的一部分

npmjs.com 上很多項目的詳情頁,看上去一片空白:

  • 沒有 readme
  • description 是一句敷衍
  • author 留著默認或亂填

一個最基本的元數據結構,大致應該是這樣:

{
  "name": "my-app",
  "version": "1.0.0",
  "description": "A simple React + Node.js project",
  "author": "Your Name"
}

這些字段的意義遠不止“好看”:

  • 方便別人搜索和評估這個項目
  • 方便團隊內部追溯“是誰寫的、做什么用的”
  • 對開源項目來說,也是“對用戶負責”的基本禮節

在很多正式面試里, 面試官一看到 package.json 連最基本的信息都不完整, 印象分就已經先掉一截。

9. 當依賴樹“腐爛”的時候,最簡單那招反而最好用

有時候,項目會突然陷入一種“到處都是奇怪錯誤”的狀態:

  • 明明昨天還能跑
  • 今天各種莫名其妙的報錯
  • 重啟、重裝、重試,依然一團亂麻

多半是因為:依賴樹已經腐爛了。

比如:

  • 某個庫偷偷發了一個問題版本
  • 鎖文件和 node_modules 不一致
  • 反復安裝疊出了一堆幽靈依賴

而很多團隊最后的解決方案,往往出奇樸素:

rm -rf node_modules
rm package-lock.json
npm install

然后,一切恢復正常。

這一刻,很多人會意識到:

依賴不是一次裝完就能永遠放心,依賴衛生(dependency hygiene)是必須長期維護的一項工程。

結語:package.json 是項目的“心跳圖”

package.json 從來不是一個“隨便寫寫的配置文件”, 而是一個項目的生命體征

  • 依賴關系
  • 腳本命令
  • 運行環境
  • 發布內容

每一個字段, 都在悄悄決定:

這個項目是能在面試官的電腦上“一鍵跑起”, 還是在 CI、生產、用戶設備上,一次次翻車。

忽視它,它會用最殘忍的方式回擊—— 從 npm start 的第一個報錯開始。

理解它,項目的穩定性、可維護性和“面試可通過程度”, 都會肉眼可見地提高一大截。

下一步,真正麻煩的部分還在后面——

  • 版本不匹配
  • peerDependencies 報錯
  • 經典的 “dependency hell”

這些東西,完全可以在項目剛起步的時候就被處理掉, 而不是等到 React 或 Node.js 項目已經跑到一半,才被迫返工。

想避免那些“明明代碼沒問題,卻被依賴拖下水”的場景, 從看懂、寫好、維護好一個 package.json 開始,就已經贏了半步。

責任編輯:武曉燕 來源: 大遷世界
相關推薦

2025-07-07 00:00:00

MCPA2AAPI

2025-10-27 01:33:00

ReactDOMFiber

2022-07-25 10:24:00

開源開發者工作機會EDB

2025-06-23 00:04:00

2015-08-27 09:43:00

開發者移動應用

2022-03-04 09:31:56

Java開發人員Java 17

2023-07-12 07:56:13

CSS規則元素

2012-06-17 13:14:29

創業創業公司信息圖

2017-03-24 09:37:45

前端開發者JavaScript面試題

2020-02-20 10:50:30

多數人不會真正成功

2022-06-10 09:00:53

前端項目個JSON

2021-08-02 15:23:16

Windows 10Windows微軟

2022-02-09 07:40:42

JavaScript前端面試題

2022-07-27 08:27:34

Call前端

2009-07-14 15:39:34

Swing大多數控件

2021-08-09 15:06:10

數字貨幣區塊鏈貨幣

2021-02-25 23:31:50

加密貨幣比特幣貨幣

2023-01-31 10:22:00

HiveMapReduce文件合并

2024-08-22 18:53:51

2011-05-26 10:50:31

點贊
收藏

51CTO技術棧公眾號

久久久午夜电影| 日韩在线一区二区三区| 精品国产91乱码一区二区三区| 久久精品国产精品亚洲精品色 | 欧美精品自拍偷拍动漫精品| 日本免费黄色小视频| 秋霞欧美在线观看| 日韩高清在线观看| 欧美精品在线免费播放| 国产三级视频网站| 国产视频一区二| 欧美日韩一区二区三区在线免费观看| 亚洲v国产v在线观看| 亚洲av无码一区二区乱子伦| 首页亚洲欧美制服丝腿| 欧美大成色www永久网站婷| 伊人网伊人影院| 亚洲开心激情| 欧美日本精品一区二区三区| 男人操女人免费软件| 精品自拍一区| 国产亚洲精品aa| 国产高清不卡av| 国产又大又粗又硬| 热久久久久久久| 91av在线免费观看视频| 国产1区2区3区4区| 色一区二区三区四区| 日韩精品在线看| 久久久久久久穴| 国产美女精品视频免费播放软件 | 一区二区三区午夜| 久久99伊人| 98精品国产高清在线xxxx天堂| 少妇aaaaa| 欧美xxxx中国| 最近2019中文字幕第三页视频| 中文字幕在线播放一区| 视频在线观看免费影院欧美meiju| 欧美在线看片a免费观看| 免费 成 人 黄 色| 国产丝袜在线播放| 亚洲精品视频在线观看网站| 亚洲免费av网| 黄av在线播放| 亚洲欧洲在线观看av| 亚洲国产综合自拍| 波多野结衣在线网站| 久久久精品天堂| 欧美精品久久久| 黄色在线视频观看网站| 91日韩在线专区| 久久久亚洲综合网站| 五月激情丁香婷婷| 99久免费精品视频在线观看| 国产精品手机在线| 人人妻人人澡人人爽久久av| 99久久综合狠狠综合久久| 国产精品久久久久久久天堂第1集| 99精品视频免费看| 国产高清精品在线| 国产精品免费区二区三区观看| 精品国产亚洲AV| 亚洲一区二区三区四区电影| 6080午夜不卡| 午夜激情视频网| 亚洲一区网址| 日韩精品免费电影| 中文字幕免费高清| 日韩精品免费| 九九热这里只有精品6| 精品无码人妻一区二区三区| 亚洲经典视频在线观看| 欧美综合国产精品久久丁香| 久久久久久无码精品大片| 美女脱光内衣内裤视频久久网站| 国产主播在线一区| 国产99视频在线| 成年人午夜久久久| 日本一区二区三区免费看| av中文字幕一区二区三区| 综合精品久久久| 蜜桃传媒一区二区三区| 桃色一区二区| 91精品国产免费| 搡老熟女老女人一区二区| 精品免费在线| 欧美激情中文字幕在线| 亚洲天堂一区在线| 久久99久久精品欧美| 国产精品一区二区三区四区五区 | 懂色av中文字幕| 久久精品国产精品亚洲综合| 国产精品免费一区二区| 韩国精品视频| 亚洲一区视频在线| 国产一级不卡毛片| 日韩一区免费| 一区二区三区无码高清视频| 免费人成年激情视频在线观看| 亚洲男女自偷自拍| 91亚洲精品一区| 久蕉在线视频| 亚洲午夜精品久久久久久久久| 欧美综合在线观看视频| 精品一区91| 亚洲天堂2020| 国产精品美女毛片真酒店| 日本特黄久久久高潮| 国产免费一区二区三区| 日本a在线播放| 一本一道久久a久久精品综合蜜臀| 国产不卡的av| 精品国产aⅴ| 午夜精品蜜臀一区二区三区免费 | 三妻四妾完整版在线观看电视剧| 制服.丝袜.亚洲.中文.综合| 中文字幕免费视频| 亚洲国产高清一区| 国产噜噜噜噜噜久久久久久久久| 五月天久久久久久| 一区二区三区中文免费| gai在线观看免费高清| 国产探花一区在线观看| 国产91成人在在线播放| 粉嫩av一区二区夜夜嗨| 1024成人网色www| 国产一二三区av| 国产欧美日韩一区二区三区四区| 午夜精品久久久久久久久久久久 | 成人三级在线视频| 丰满女人性猛交| 国产亚洲人成a在线v网站| 精品调教chinesegay| 国产无精乱码一区二区三区| 国产一区日韩二区欧美三区| 正在播放一区二区三区| 成人精品国产亚洲| 亚洲人成电影网站色| 五月婷婷中文字幕| 成人高清视频在线观看| 欧美性潮喷xxxxx免费视频看| 高清国产一区二区三区四区五区| 日韩少妇与小伙激情| 在线观看毛片网站| 国产欧美日韩亚州综合| 午夜视频在线瓜伦| 少妇精品久久久一区二区| 日韩av免费在线| 色播色播色播色播色播在线| 精品久久久久久久久久久| 国产精品探花一区二区在线观看| 99国产精品99久久久久久粉嫩| 国产美女精品在线观看| 国产伦理精品| 亚洲视频在线视频| 中文字幕一区2区3区| 国产精品色眯眯| 天天综合天天添夜夜添狠狠添| 97精品国产一区二区三区| 成人午夜在线观看| 日本动漫同人动漫在线观看| 日韩精品一区二区三区swag| 日韩高清免费av| 91香蕉视频黄| 免费看a级黄色片| 97久久夜色精品国产| 亚洲专区中文字幕| 91豆花视频在线播放| 日韩成人在线观看| www.亚洲激情| 亚洲三级电影网站| 日本69式三人交| 首页国产欧美久久| 吴梦梦av在线| 里番精品3d一二三区| 日韩av免费在线看| 成人免费网址| 亚洲精品suv精品一区二区| 亚洲天堂男人av| 最新中文字幕一区二区三区| 亚洲AV成人精品| 国产日韩高清一区二区三区在线| 日本成人黄色| 精品午夜av| 国产91免费看片| 欧美高清另类hdvideosexjaⅴ | 日本综合在线| 精品国产制服丝袜高跟| 日本熟女毛茸茸| 亚洲私人影院在线观看| 日本黄色动态图| 捆绑紧缚一区二区三区视频| 无码av天堂一区二区三区| 精品久久91| 国产伦精品一区二区三毛| а√天堂资源国产精品| 欧美国产日韩二区| 成年人在线免费观看| 精品少妇一区二区三区视频免付费 | 天天爱天天干天天操| 欧美亚洲国产怡红院影院| 久久久久亚洲av无码专区| 国产欧美一区二区精品忘忧草| 欧美日韩一区二区区别是什么| 日韩在线卡一卡二| 国产v片免费观看| 91精品一区国产高清在线gif | 一个人看的视频www| 美女视频一区免费观看| 黄色a级片免费看| 区一区二视频| 精品麻豆av| 日本精品视频| 国产精品亚洲аv天堂网| 僵尸再翻生在线观看| 欧美成人黑人xx视频免费观看| 国产小视频在线观看| 亚洲国产精品人久久电影| 97人妻人人澡人人爽人人精品| 欧美日韩中文在线| 久久99久久98精品免观看软件| 国产精品久久久久久久久免费丝袜| 加勒比精品视频| 成人毛片老司机大片| 色网站在线视频| 蜜桃视频免费观看一区| 免费日韩中文字幕| 国产亚洲亚洲| 久久久久免费看黄a片app| 欧美日韩中文| 青青视频免费在线| 欧美在线精品一区| av磁力番号网| 亚洲h色精品| 爱爱爱视频网站| 婷婷丁香综合| aaa免费在线观看| 日韩综合精品| 亚洲日本精品国产第一区| 精品久久久亚洲| 日本不卡二区| 精品国产美女| 亚洲国产精品一区在线观看不卡 | 久久综合九色综合97婷婷| 欧美性生交xxxxx| 成人av网站在线观看免费| 台湾佬美性中文| 大尺度一区二区| 少妇一级淫免费观看| 成人av网站免费观看| 国产污在线观看| 成人av在线一区二区三区| xxxx黄色片| 久久九九久精品国产免费直播| 制服 丝袜 综合 日韩 欧美| 国产欧美va欧美不卡在线| 最新日韩免费视频| 亚洲天堂av老司机| 精品爆乳一区二区三区无码av| 亚洲一区二区在线免费看| 欧美日韩中文字幕在线观看| 亚洲国产欧美日韩另类综合 | 日韩在线一二三区| 污污的网站免费| 国产精品影音先锋| v天堂中文在线| 国产三级精品三级| 少妇高潮一区二区三区喷水| 亚洲欧美国产毛片在线| 日韩免费不卡视频| 一本大道久久a久久综合| 最新中文字幕免费| 日韩欧美一二三四区| 天天干视频在线观看| 国产午夜精品免费一区二区三区| 欧美激情二区| 国产69精品久久久| 色天使综合视频| 99精品国产高清一区二区| 久久久久久久久久久久久久久久久久久久| 鲁丝一区二区三区免费| 欧美成人milf| 日韩av在线第一页| 久久国内精品自在自线400部| 亚洲免费观看在线| 亚洲国产精品成人综合色在线婷婷| 国产第一页浮力| 欧美日韩国产中文字幕 | 欧美黑人一区| 亚洲a∨日韩av高清在线观看| 久久综合另类图片小说| 亚洲激情电影在线| 亚洲第一毛片| 国产成人黄色网址| 99久久精品情趣| 波多野结衣欲乱| 欧美性猛交xxxx黑人| 国产三级自拍视频| 亚洲欧洲一区二区三区久久| 性欧美videos高清hd4k| 国产精品久久久久av免费| 99国产精品久久一区二区三区| 日本不卡一区二区三区在线观看| 国产精品第十页| www.cao超碰| 久久九九99视频| 日操夜操天天操| 欧美一区二视频| а√天堂中文在线资源bt在线| 高清欧美一区二区三区| 日韩成人在线电影| 欧美一区二区视频17c| 国内视频精品| 亚洲妇熟xx妇色黄蜜桃| 国产网红主播福利一区二区| 国产在线视频第一页| 欧美久久一二区| 精品99又大又爽又硬少妇毛片 | 天堂网一区二区三区| 91精品啪在线观看国产60岁| 日韩二区三区| 午夜精品一区二区三区视频免费看 | 国产亚洲精品自拍| 韩国三级与黑人| 国产精品二三区| 中文字幕第99页| 亚洲午夜女主播在线直播| 欧美gv在线| 精品国产一区二区三区麻豆小说 | 老司机免费视频| 亚洲图片欧美一区| 国产高清视频免费观看| 久青草国产97香蕉在线视频| 激情小说亚洲| 亚洲图片欧洲图片日韩av| 视频一区二区不卡| 真实乱视频国产免费观看| 91成人在线免费观看| 日韩一区二区三区中文字幕| 78m国产成人精品视频| 欧美高清视频看片在线观看| 国产a级片网站| a美女胸又www黄视频久久| 国产一级特黄a高潮片| 精品美女在线观看| av午夜在线观看| 精品欧美日韩在线| 亚洲男女自偷自拍| 色哟哟精品观看| 在线一区二区三区四区五区| 成人性生交大片免费看午夜| 国产精品美乳在线观看| 日韩在线理论| 成人在线短视频| 亚洲国产色一区| 四虎精品在线| 国产精品第三页| 久久一区二区三区喷水| 一级黄色片在线免费观看| 亚洲尤物视频在线| 四虎永久在线观看| 国产成人一区二区三区电影| 凹凸成人精品亚洲精品密奴| 亚洲精品综合在线观看| 一区二区日韩av| 天堂资源中文在线| 国产精品女人网站| 1024精品久久久久久久久| 性猛交╳xxx乱大交| 欧美日韩视频在线| 岛国大片在线观看| 91美女高潮出水| 亚洲国产精品第一区二区| 受虐m奴xxx在线观看| 欧美日本视频在线| sm久久捆绑调教精品一区| 日韩欧美一区二区视频在线播放 | 亚洲综合在线播放| 亚洲精品美女91| 我不卡一区二区| 欧美一级欧美三级在线观看| 久热在线观看视频| 一区二区三区四区国产| 成人免费av在线| 久久久久久亚洲av无码专区| 操人视频在线观看欧美| 麻豆精品av| 国产欧美激情视频| 黑人狂躁日本妞一区二区三区 | 午夜精品一区二区三区av| 欧美色网址大全| 一级黄色电影片| 欧美三日本三级三级在线播放| 色www永久免费视频首页在线 | 人体私拍套图hdxxxx| 欧美三级电影一区| 国产va在线视频| 欧美大片免费播放| 中文在线一区二区|