亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

npm入手筆記0x003-一些常見問題記錄

luffyZh / 1862人閱讀

摘要:如何選擇就如果上面所有,需要打包進(jìn)生產(chǎn)環(huán)境就保存到,只是在開發(fā)或者打包的時(shí)候使用的就保存到即可。提示不能發(fā)布當(dāng)前版本解決方案不能發(fā)布已經(jīng)發(fā)布的版本,修改一下版本號就可以了想不到了,想到了再寫資源項(xiàng)目

0x001 概述

本篇文章承接上文,記錄的是一些使用過程中的疑惑

0x001 墻的原因使得包下載太慢

解決方案:使用淘寶cnpm,推薦使用cnpm,因?yàn)槿绻薷?b>npm倉庫,將會導(dǎo)致無法發(fā)布包。

$ npm install -g cnpm --registry=https://registry.npm.taobao.org
/usr/local/bin/cnpm -> /usr/local/lib/node_modules/cnpm/bin/cnpm
+ cnpm@5.1.1
updated 4 packages in 10.035s

$ cnpm install lodash
0x002 無法安裝全局包,提示EACCES ,沒有權(quán)限

解決方案:推薦第一種,簡單!

第一種:給全局包安裝路徑權(quán)限

$ npm config get prefix
/usr/local
$ sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

第二種:修改全局包安裝路徑到有權(quán)限的地方

 $ mkdir ~/.npm-global
 $ npm config set prefix "~/.npm-global"
 $ export PATH=~/.npm-global/bin:$PATH
 $ source ~/.profile

0x003 全局包和本地包的區(qū)別以及如何抉擇

本質(zhì)上是沒有差別的,只是一個(gè)裝在了全局文件夾,一個(gè)裝在了項(xiàng)目文件夾。全局文件夾中的包到處都可以引用,而裝在項(xiàng)目文件夾中的包只有該項(xiàng)目才可以引用(其實(shí)都可以引用),以下做實(shí)驗(yàn)來演示

新建文件夾0x007-local-global-diff1,0x008-local-global-diff2,0x009-local-global-diff3,0x010-local-global-diff4,并且使用命名空間做包名

$ mkdir 0x007-local-global-diff1
$ mkdir 0x008-local-global-diff2
$ mkdir 0x009-local-global-diff3
$ mkdir 0x010-local-global-diff4

編寫并發(fā)布@followwinter/0x007-local-global-diff1@1.0.0

$ cd 0x007-local-global-diff1
$ 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: (0x007-local-global-diff1) @followwinter/0x007-local-global-diff1
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/0x007-local-global-diff1/package.json:

{
  "name": "@followwinter/0x007-local-global-diff1",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo "Error: no test specified" && exit 1"
  },
  "author": "",
  "license": "ISC"
}


Is this ok? (yes) 

$ vim index.js
// index.js
exports.printMsg = function() {
  console.log("This is a message from the @followwinter/0x007-local-global-diff1@1.0.0 package");
}
$ npm publish --access public
+ @followwinter/0x007-local-global-diff1@1.0.0

安裝并引用@followwinter/0x007-local-global-diff1@1.0.0

$ cd  0x008-local-global-diff2
$ vim index.js
$ npm install @followwinter/0x007-local-global-diff1
npm WARN saveError ENOENT: no such file or directory, open "/MY_PROJECT/PROJECT_OWN/NodeJS/npm/0x008-local-global-diff2/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/0x008-local-global-diff2/package.json"
npm WARN 0x008-local-global-diff2 No description
npm WARN 0x008-local-global-diff2 No repository field.
npm WARN 0x008-local-global-diff2 No README data
npm WARN 0x008-local-global-diff2 No license field.

+ @followwinter/0x007-local-global-diff1@1.0.0
added 1 package in 2.361s

$ vim index.js
// index.js
var myModule = require("@followwinter/0x007-local-global-diff1");
console.log(myModule);
myModule.printMsg();

$ node index.js
{ printMsg: [Function] }
This is a message from the @followwinter/0x007-local-global-diff1@1.0.0 package

更新@followwinter/0x007-local-global-diff1@1.0.0版本

$ cd 0x007-local-global-diff1/
$  vim index.js

// index.js
exports.printMsg = function() {
  console.log("This is a message from the @followwinter/0x007-local-global-diff1@1.0.2 package");
}

$ vim package.js
// package.js
{
  "name": "@followwinter/0x007-local-global-diff1",
  "version": "1.0.2",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo "Error: no test specified" && exit 1"
  },
  "author": "",
  "license": "ISC"
}

$ npm publish --access public
+ @followwinter/0x007-local-global-diff1@1.0.2

全局安裝新版本并引用

$ cd 0x009-local-global-diff3/
$ npm install @followwinter/0x007-local-global-diff1 -g
+ @followwinter/0x007-local-global-diff1@1.0.2
$ vim index.js
// index.js
var myModule = require("@followwinter/0x007-local-global-diff1");
console.log(myModule);
myModule.printMsg();

$ node index.js
{ printMsg: [Function] }
This is a message from the @followwinter/0x007-local-global-diff1@1.0.2 package

運(yùn)行0x008-local-global-diff2,驗(yàn)證全局和本地的引用順序

$ cd 0x008-local-global-diff2
$ node index.js
This is a message from the @followwinter/0x007-local-global-diff1@1.0.0 package

0x010引用0x008中的node_modules中的0x007

$ cd 0x010-local-global-diff4/
$ vim index.js

// index.js
var myModule = require("/MY_PROJECT/PROJECT_OWN/NodeJS/npm/0x008-local-global-diff2/node_modules/@followwinter/0x007-local-global-diff1");
console.log(myModule);
myModule.printMsg();

$ node index.js 
{ printMsg: [Function] }
This is a message from the @followwinter/0x007-local-global-diff1@1.0.0 package

所以包的查找順序是

- 項(xiàng)目的`node_modules`文件夾
- 全局的`node_modules`文件夾

但是都可以找到就是,主要是查找路徑和順序的問題,而關(guān)于如何抉擇存在哪呢?考慮的問題有一下幾點(diǎn)

是否在意全局文件的占用問題,全局文件不手動刪除會一直存在,占用磁盤空間

是否在多個(gè)項(xiàng)目使用不同版本?版本之間還有沖突?如果是這樣,推薦還是保存在本地

是否有命令行功能?如果有推薦安裝在全局,因?yàn)榘惭b本地調(diào)用需要調(diào)整調(diào)用路徑,很麻煩

0x004 dependenciesdependencies-dev節(jié)點(diǎn)的區(qū)別以及如何抉擇

區(qū)別:沒有啥區(qū)別,只有語義上的區(qū)別,dependencies一般說的是項(xiàng)目運(yùn)行需要的包,或者說需要打包進(jìn)生產(chǎn)環(huán)境的包,比如jQuerylodash之類,而dependencies-dev一般說的是開發(fā)需要用的包,比如webpack、gulp之類,在生產(chǎn)環(huán)境中不需要打包。
如何選擇就如果上面所有,需要打包進(jìn)生產(chǎn)環(huán)境就保存到dependencies,只是在開發(fā)或者打包的時(shí)候使用的就保存到dependencies-dev即可。

0x005 提示不能發(fā)布當(dāng)前版本
npm ERR! publish Failed PUT 403
npm ERR! code E403
npm ERR! You cannot publish over the previously published version 1.0.2. : @followwinter/0x007-local-global-diff1

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/FollowWinter/.npm/_logs/2017-09-10T14_01_59_753Z-debug.log

解決方案:不能發(fā)布已經(jīng)發(fā)布的版本,修改一下版本號就可以了

0x006 想不到了,想到了再寫 0x007 資源

項(xiàng)目github

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/88492.html

相關(guān)文章

  • npm入手筆記0x005-v2和v3包依賴管理的不同

    摘要:概述本篇文章承接上文,記錄的和版本在包管理方面的異同,基于閱讀官方原文整理簡化。此時(shí)的文件夾如下所示包的復(fù)制和取消復(fù)制假設(shè)我們有一個(gè)項(xiàng)目依賴添加依賴依賴,此時(shí)添加依賴依賴,此時(shí)升級依賴依賴,此時(shí)升級依賴依賴,此時(shí)執(zhí)行查看文件夾資源項(xiàng)目 0x000 概述 本篇文章承接上文,記錄的v2和v3版本在包管理方面的異同,基于閱讀官方原文整理簡化。 0x001 v2管理方式 假設(shè)有模塊A、B、C,...

    ssshooter 評論0 收藏0
  • npm入手筆記0x002-發(fā)布自己的Node.js模塊及其版本管理

    摘要:概述本篇文章承接上文,記錄的是如何發(fā)布自己的模塊編寫模塊新建項(xiàng)目并初始化編寫模塊代碼發(fā)布模塊測試模塊命名空間每個(gè)人都可以發(fā)布自己的包,難免會有包名相同的情況,如果想要使 0x001 概述 本篇文章承接上文,記錄的是如何發(fā)布自己的Node.js模塊 0x002 編寫模塊 新建項(xiàng)目并初始化 $ mkdir 0x005-publish-own-module $ cd 0x005-publis...

    mrli2016 評論0 收藏0
  • npm入手筆記0x001-項(xiàng)目初始化和包增刪改

    摘要:引用并執(zhí)行如果安裝出錯,比如寫錯了包名,將會發(fā)生以下事情命令行報(bào)錯使用可以自己新建一個(gè)文件編寫也可以直接使用來初始化一個(gè)該命令是一個(gè)交互式命令,可以根據(jù)提示輸入相應(yīng)信息生成相應(yīng)的,命令提示后面的中為提示內(nèi)容,可以選擇一路,然后再去修改。 0x001 概述 npm是一個(gè)包管理工具,本文章基本算是對官方文檔的解讀、翻譯和實(shí)操筆記,順便說明使用npm中的坑。 0x002 安裝Node.js ...

    Baoyuan 評論0 收藏0
  • npm入手筆記0x004-npm命令及配置文件說明(未完善)

    摘要:概述本篇文章承接上文,記錄的的配置和命令的詳細(xì)說明。的配置說明項(xiàng)目名稱,的時(shí)候就是使用這個(gè)。案例說明版本號,符合的版本規(guī)范的版本號,默認(rèn)從開始。 0x000 概述 本篇文章承接上文,記錄的package.json的配置和npm命令的詳細(xì)說明。 0x001 package.json的配置 name: 說明:項(xiàng)目名稱,npm install的時(shí)候就是使用這個(gè)name。 案例:loda...

    mzlogin 評論0 收藏0
  • java筆記0x003:控制執(zhí)行流程

    0x001 if-else boolean isSuccess = true; if (isSuccess) { System.out.println(success); } if (isSuccess) { System.out.println(success); }...

    callmewhy 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<