日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

            歡迎訪問 生活随笔!

            生活随笔

            當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

            编程问答

            node相关内容

            發(fā)布時間:2025/3/15 编程问答 19 豆豆
            生活随笔 收集整理的這篇文章主要介紹了 node相关内容 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

            npm

          1. npm 安裝的模塊會安裝在node_modules文件夾中,我們通過npm下載的包,直接通過包名引入即可
          2. node在使用模塊名字來引入模塊是,它會首先在當(dāng)前目錄的node包中尋找是否含有該模塊,如果有則直接使用,沒有則去上一級node包中訓(xùn)中,知道找到為止,如果找到磁盤的根目錄,依然沒有,則報錯
          3. ~和^的作用和區(qū)別是什么呢?
          4. ~會匹配最近的小版本依賴包,比如~1.2.3會匹配所有1.2.x版本,但是不包括1.3.0 ^會匹配最新的大版本依賴包,比如^1.2.3會匹配所有1.x.x的包,包括1.3.0,但是不包括2.0.0 那么該如何選擇呢?當(dāng)然你可以指定特定的版本號,直接寫1.2.3,前面什么前綴都沒有,這樣固然沒問題,但是如果依賴包發(fā)布新版本修復(fù)了一些小bug,那么需要手動修改package.json文件;~和^則可以解決這個問題。 但是需要注意^版本更新可能比較大,會造成項目代碼錯誤,比如這篇文章(http://blog.csdn.net/u014291497/article/details/54427103)的問題就是因為package.json使用^1.5.7造成的,1.6版本的包與現(xiàn)有代碼不兼容。 所以建議使用~來標(biāo)記版本號,這樣可以保證項目不會出現(xiàn)大的問題,也能保證包中的小bug可以得到修復(fù)。 或者版本號寫*,這意味著安裝最新版本的依賴包,但缺點(diǎn)同上,可能會造成版本不兼容,慎用!

            什么是包

            • 為了便于管理和使用,我們可以把有多個子模塊組成的大模塊稱作包,并把所有子模塊放在同一個目錄里。
            • 組成一個包的所有子模塊中,需要有一個入口模塊,入口模塊的導(dǎo)出對象被作為包的導(dǎo)出對象。
            • 默認(rèn)包中的入口模塊為index.js,也可以在包中新建一個package.json包描述文件,設(shè)置main屬性值為模塊的入口
            • 包等于項目,模塊等于文件

            package.json

            • 版本1.0.0(大版本號:做了不兼容修改或顛覆式的重寫。中版本號:向下兼容的功能性新增 。小版本號:向下兼容的問題修正、修改bug。)
            • name:項目名稱、version:版本號、description:項目描述、main:主模塊、dependencies:依賴列表、devDependencies:開發(fā)時依賴、scripts:腳本命令,npm執(zhí)行命令、
            • npm init創(chuàng)建

            上傳(簡單方式)

            • 新建一個文件夾demo,然后npm init -y 增加一個package.json文件
            • demo里創(chuàng)建一個index.js文件,然后寫上要導(dǎo)出的代碼
            • npm login登錄npm賬號
            • npm publish
            {"name": "math_manage", // 包名(必須填寫)不能有大寫"version": "1.0.0", // 版本號(必須填寫)"description": "","main": "index.js", // 入口文件"scripts": {"test": "echo \"Error: no test specified\" && exit 1"},"keywords": [],"author": "","license": "ISC" }

            上傳(嵌套方式)

            • 新建一個文件夾demo,然后npm init -y 增加一個package.json文件
            • demo里創(chuàng)建一個index.js文件,創(chuàng)建一個components文件夾,components文件夾創(chuàng)建modal文件夾和index.js文件夾,modal文件夾創(chuàng)建index.js文件
            • npm login登錄npm賬號
            • npm publish
            // demo文件夾里的index.js module.exports = require('./components'); // components文件夾里的index.js export { default as modal } from './modal'; // modal文件夾里的index.js const modal = '123421411234124'; export default modal; // 引入 import {modal } from 'math_manage' console.log(modal); // 123421411234124

            引入(require)

            1. 引入自定義模塊 var method = require('./method.js'); 2. 引入第三方模塊 var webpack = require('webpack'); 1. 引入系統(tǒng)模塊 var fs = require('fs');
            • 注意事項
            1.當(dāng)一個模塊被多次引用時,只會執(zhí)行一次,將暴露的對象寫入緩存,可以重復(fù)使用 var method1 = require('./method.js'); var method2 = require('./method.js'); var method3 = require('./method.js'); var method4 = require('./method.js');

            導(dǎo)出(export)

            exports導(dǎo)出對象:作用:將模塊中需要共享給其他模塊的數(shù)據(jù)暴露到引用處語法:exports.屬性名=值;exports.方法名=函數(shù);注意:1.exports是module.exports對象的引用,指向同一個內(nèi)存空間 module.exports===exports2.exports是module.exports的引用,不能改指向,只能添加屬性和方法3.module.exports才是真正的暴露對象,指向哪里就暴露哪里(建議使用module.exports不會出錯)

            path

            • 系統(tǒng)模塊
            path.normalize(p) 規(guī)范化路徑,注意'..' 和 '.'。path.join([path1][, path2][, ...]) 用于連接路徑。該方法的主要用途在于,會正確使用當(dāng)前系統(tǒng)的路徑分隔符,Unix系統(tǒng)是"/",Windows系統(tǒng)是"\"。path.resolve([from ...], to) 將 to 參數(shù)解析為絕對路徑。path.isAbsolute(path) 判斷參數(shù) path 是否是絕對路徑。path.dirname(p) 返回路徑中代表文件夾的部分,同 Unix 的dirname 命令類似。path.basename(p[, ext]) 返回路徑中的最后一部分。同 Unix 命令 bashname 類似。path.extname(p) 返回路徑中文件的后綴名,即路徑中最后一個'.'之后的部分。如果一個路徑中并不包含'.'或該路徑只包含一個'.' 且這個'.'為路徑的第一個字符,則此命令返回空字符串。path.parse(pathString) 返回路徑字符串的對象。path.format(pathObject) 從對象中返回路徑字符串,和 path.parse 相反var path = require("path");// 格式化路徑,返回結(jié)果 normalization : /test/test1/2slashes/1slash console.log('normalization : ' + path.normalize('/test/test1//2slashes/1slash/tab/..'));// 連接路徑,返回結(jié)果 joint path : /test/test1/2slashes/1slash console.log('joint path : ' + path.join('/test', 'test1', '2slashes/1slash', 'tab', '..'));// 轉(zhuǎn)換為絕對路徑,返回結(jié)果 resolve : /web/com/1427176256_27423/main.js console.log('resolve : ' + path.resolve('main.js'));// 路徑中文件的后綴名,返回結(jié)果 ext name : .js console.log('ext name : ' + path.extname('main.js'));

            轉(zhuǎn)載于:https://www.cnblogs.com/Hsong/p/9768860.html

            與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖

            總結(jié)

            以上是生活随笔為你收集整理的node相关内容的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

            如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。