摘要:引用并執(zhí)行如果安裝出錯,比如寫錯了包名,將會發(fā)生以下事情命令行報錯使用可以自己新建一個文件編寫也可以直接使用來初始化一個該命令是一個交互式命令,可以根據(jù)提示輸入相應(yīng)信息生成相應(yīng)的,命令提示后面的中為提示內(nèi)容,可以選擇一路,然后再去修改。
0x001 概述
npm是一個包管理工具,本文章基本算是對官方文檔的解讀、翻譯和實操筆記,順便說明使用npm中的坑。
0x002 安裝Node.js安裝方式參照Node.js官方文檔即可,安裝完成后,命令行鍵入node -v成功執(zhí)行說明安裝成功了
$ node -v v6.3.1
順便檢查一下npm版本并更新它
$ npm -v 5.3.0 $ npm install npm@latest -g /usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npx -> /usr/local/lib/node_modules/npm/bin/npx-cli.js + npm@5.4.1 added 22 packages, removed 22 packages and updated 133 packages in 11.208s ╭─────────────────────────────────────╮ │ │ │ Update available 5.3.0 → 5.4.1 │ │ Run npm i -g npm to update │ │ │ ╰─────────────────────────────────────╯0x003 本地安裝包
新建一個項目文件夾
mkdir 0x003-install-local cd 0x003-install-local
安裝loadash
$ npm install lodash npm WARN saveError ENOENT: no such file or directory, open "/MY_PROJECT/PROJECT_OWN/NodeJS/npm/package.json" npm notice created a lockfile as package-lock.json. You should commit this file. npm WARN enoent ENOENT: no such file or directory, open "/MY_PROJECT/PROJECT_OWN/NodeJS/npm/package.json" npm WARN npm No description npm WARN npm No repository field. npm WARN npm No README data npm WARN npm No license field. + lodash@4.17.4 added 1 package in 0.862s
成功安裝包之后,將會發(fā)生以下的事情:
在項目的目錄會生成一個node_modules文件夾,里面放置了我們項目所有的本地依賴包
$ cd node_modules $ ls lodash
如果該項目存在package.json文件,將會把該lodash加入到項目的依賴中,這里沒有package.json,所以安裝的時候有個WARN。
生成一個package-lock.json,將項目的依賴版本鎖定,這樣遷移的時候,重新安裝依賴就會安裝指定版本的包(新版本才有,待驗證)。
引用并執(zhí)行
$ vim index.js // index.js var lodash = require("lodash"); var output = lodash.without([1, 2, 3], 1); console.log(output); $ node index.js [ 2, 3 ]
如果安裝出錯,比如寫錯了包名,將會發(fā)生以下事情:
命令行報錯
npm install loadashsh npm ERR! code E404 npm ERR! 404 Not Found: loadashsh@latest npm ERR! A complete log of this run can be found in: npm ERR! /Users/FollowWinter/.npm/_logs/2017-09-10T11_37_44_504Z-debug.log0x004 使用package.json
可以自己新建一個文件編寫package.json,也可以直接使用npm init來初始化一個
$ mkdir 0x004-use-package_json $ cd 0x004-use-package_json/ $ npm init This utility will walk you through creating a package.json file. It only covers the most common items, and tries to guess sensible defaults. See `npm help json` for definitive documentation on these fields and exactly what they do. Use `npm install` afterwards to install a package and save it as a dependency in the package.json file. Press ^C at any time to quit. package name: (0x004-use-package_json) version: (1.0.0) description: entry point: (index.js) test command: git repository: keywords: author: license: (ISC) About to write to /MY_PROJECT/PROJECT_OWN/NodeJS/npm/0x004-use-package_json/package.json: { "name": "0x004-use-package_json", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo "Error: no test specified" && exit 1" }, "author": "", "license": "ISC" } Is this ok? (yes)
該命令是一個交互式命令,可以根據(jù)提示輸入相應(yīng)信息生成相應(yīng)的package.json,命令提示后面的()中為提示內(nèi)容,可以選擇一路enter,然后再去修改package.json。執(zhí)行成功后,將會在項目中生成package.json文件。
// package.json { "name": "0x004-use-package_json", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo "Error: no test specified" && exit 1" }, "author": "", "license": "ISC" }
再一次安裝包
$ npm install lodash npm notice created a lockfile as package-lock.json. You should commit this file. npm WARN 0x004-use-package_json@1.0.0 No description npm WARN 0x004-use-package_json@1.0.0 No repository field. + lodash@4.17.4 added 1 package in 1.378s //package.json { "name": "0x004-use-package_json", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo "Error: no test specified" && exit 1" }, "author": "", "license": "ISC", "dependencies": { "lodash": "^4.17.4" } }
可以發(fā)現(xiàn),多了一個dependencies節(jié)點,該節(jié)點保存了項目所有的依賴,當然我們也可以通過對該節(jié)點的修改,改變項目的依賴,比如刪除lodash,或者改變lodash版本。
刪除dependencies中的lodash之后再執(zhí)行
$ npm install npm WARN 0x004-use-package_json@1.0.0 No description npm WARN 0x004-use-package_json@1.0.0 No repository field. removed 1 package in 0.249s $ cd node_modules $ ls -al . ..
可以看出,lodash包已經(jīng)被移除
npm install可以根據(jù)package.json的指示安裝、更新、刪除依賴。
npm update0x006 刪除依賴
$ npm uninstall lodash npm WARN 0x004-use-package_json@1.0.0 No description npm WARN 0x004-use-package_json@1.0.0 No repository field. removed 1 package in 0.247s0x007 全局包管理
和安裝本地包沒有區(qū)別,只是加了個-g參數(shù),表示global
$ npm install -g jshint /usr/local/bin/jshint -> /usr/local/lib/node_modules/jshint/bin/jshint + jshint@2.9.5 added 31 packages in 41.728s
同理包的更新和刪除也無異,
$ npm install -g jshint $ npm update -g jshint $ npm uninstall -g jshint removed 31 packages in 0.365s0x008 總結(jié)
一篇文章太長,打起字來就會卡頓, 我打了很多字嗎?
npm init: 初始化項目,生成package.json
npm install [
根據(jù)項目中的package.json初始化項目、更新依賴
如果指定了
npm update [
更新項目依賴到新版本
如果指定了
npm uninstall
項目github
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/88497.html
摘要:概述本篇文章承接上文,記錄的是如何發(fā)布自己的模塊編寫模塊新建項目并初始化編寫模塊代碼發(fā)布模塊測試模塊命名空間每個人都可以發(fā)布自己的包,難免會有包名相同的情況,如果想要使 0x001 概述 本篇文章承接上文,記錄的是如何發(fā)布自己的Node.js模塊 0x002 編寫模塊 新建項目并初始化 $ mkdir 0x005-publish-own-module $ cd 0x005-publis...
摘要:概述本篇文章承接上文,記錄的的配置和命令的詳細說明。的配置說明項目名稱,的時候就是使用這個。案例說明版本號,符合的版本規(guī)范的版本號,默認從開始。 0x000 概述 本篇文章承接上文,記錄的package.json的配置和npm命令的詳細說明。 0x001 package.json的配置 name: 說明:項目名稱,npm install的時候就是使用這個name。 案例:loda...
摘要:概述本篇文章承接上文,記錄的和版本在包管理方面的異同,基于閱讀官方原文整理簡化。此時的文件夾如下所示包的復(fù)制和取消復(fù)制假設(shè)我們有一個項目依賴添加依賴依賴,此時添加依賴依賴,此時升級依賴依賴,此時升級依賴依賴,此時執(zhí)行查看文件夾資源項目 0x000 概述 本篇文章承接上文,記錄的v2和v3版本在包管理方面的異同,基于閱讀官方原文整理簡化。 0x001 v2管理方式 假設(shè)有模塊A、B、C,...
摘要:如何選擇就如果上面所有,需要打包進生產(chǎn)環(huán)境就保存到,只是在開發(fā)或者打包的時候使用的就保存到即可。提示不能發(fā)布當前版本解決方案不能發(fā)布已經(jīng)發(fā)布的版本,修改一下版本號就可以了想不到了,想到了再寫資源項目 0x001 概述 本篇文章承接上文,記錄的是一些使用過程中的疑惑 0x001 墻的原因使得包下載太慢 解決方案:使用淘寶cnpm,推薦使用cnpm,因為如果修改npm倉庫,將會導(dǎo)致無法發(fā)布...
摘要:概述開坑系列文章,不知道會寫到什么程度,畢竟寫文章并不在行,存在當做筆記做,先不講理論,實踐先行。 0x000 概述 開坑 react 系列文章,不知道會寫到什么程度,畢竟寫文章并不在行,存在當做筆記做,先不講理論,實踐先行。 0x001 創(chuàng)建項目 $ mkdir 0x001-helloworld $ cd 0x001-helloworld $ yarn init -y 0x0002 ...
閱讀 1820·2023-04-26 01:55
閱讀 1083·2021-09-30 09:47
閱讀 1679·2019-08-30 15:54
閱讀 744·2019-08-30 15:53
閱讀 697·2019-08-30 15:52
閱讀 1140·2019-08-30 15:44
閱讀 2414·2019-08-30 14:06
閱讀 1062·2019-08-29 16:39