国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

package.json 非官方字段集合

denson / 2835人閱讀

摘要:非官方字段集合官方字段請參考。下面介紹的是非官方字段,也就是各種工具定義的相關字段。詳細參考相關字段設置項目的瀏覽器兼容情況。相關字段測試庫。相關字段代碼檢查與優化。

package.json 非官方字段集合

package.json 官方字段請參考 https://docs.npmjs.com/files/package.json。下面介紹的是非官方字段,也就是各種工具定義的相關字段。

1. yarn 相關字段

yarn: 類似 npm 的依賴管理工具,但 yarn 緩存了每個下載過的包,所以再次使用時無需重復下載,同時利用并行下載以最大化資源利用率,因此安裝速度更快。

flat
{
  "flat": true
}

如果你的包只允許給定依賴的一個版本,你想強制和命令行上 yarn install --flat 相同的行為,把這個值設為 true

詳細參考 yarn - flat.

resolutions
{
  "resolutions": {
    "transitive-package-1": "0.0.29",
    "transitive-package-2": "file:./local-forks/transitive-package-2",
    "dependencies-package-1/transitive-package-3": "^2.1.1"
  }
}

允許你覆蓋特定嵌套依賴項的版本。有關完整規范,請參見選擇性版本解析 RFC。

詳細參考 yarn - resolutions.

2. unpkg 相關字段

unpkg: 讓 npm 上所有的文件都開啟 cdn 服務。

unpkg
# jquery
{
  "unpkg": "dist/jquery.js"
}

正常情況下,訪問 jquery 的發布文件通過 https://unpkg.com/jquery@3.3.1/dist/jquery.js,當你使用省略的 url https://unpkg.com/jquery 時,便會按照如下的方式獲取文件:

# [latestVersion] 指最新版本號,pkg 指 package.json

# 定義了 unpkg 屬性時
https://unpkg.com/jquery@[latestVersion]/[pkg.unpkg]

# 未定義 unpkg 屬性時,將回退到 main 屬性
https://unpkg.com/jquery@[latestVersion]/[pkg.main] 

詳細參考 https://unpkg.com.

3. TypeScript 相關字段

TypeScript: JavaScript 的超集

types, typings
{
  "main": "./lib/main.js",
  "types": "./lib/main.d.ts"
}

就像 main 字段一樣,定義一個針對 TypeScript 的入口文件。

詳細參考 TypeScript documentation.

4. browserslist 相關字段

browserslist: 設置項目的瀏覽器兼容情況。

browserslist
{
  "browserslist": [
    "> 1%",
    "last 2 versions"
  ]
}

支持的工具:

Autoprefixer

Babel

postcss-preset-env

eslint-plugin-compat

stylelint-no-unsupported-browser-features

postcss-normalize

詳細參考 browserslist.

5. 發行打包相關字段

點擊 Setting up multi-platform npm packages 查看相關介紹。

module
{
  "main": "./lib/main.js",
  "module": "./lib/main.m.js"
}

就像 main 字段一樣,定義一個針對 es6 模塊及語法的入口文件。

構建工具在構建項目的時候,如果發現了這個字段,會首先使用這個字段指向的文件,如果未定義,則回退到 main 字段指向的文件。

支持的工具:

rollup

webpack

詳細參考 rollup - pkg.module.

browser
{
  "main": "./lib/main.js",
  "browser": "./lib/main.b.js"
}

指定該模塊供瀏覽器使用的入口文件。

如果這個字段未定義,則回退到 main 字段指向的文件。

支持的工具:

rollup

webpack

browserify

詳細參考 babel-plugin-module-resolver.

esnext
{
  "main": "main.js",
  "esnext": "main-esnext.js"
}

# or

{
  "main": "main.js",
  "esnext": {
    "main": "main-esnext.js",
    "browser": "browser-specific-main-esnext.js"
  }
}

使用 es 模塊化規范,stage 4 特性的源代碼。

詳細參考 Transpiling dependencies with Babel, Delivering untranspiled source code via npm.

es2015
{
  "main": "main.js",
  "es2015": "main-es2015.js"
}

Angular 定義的未轉碼的 es6 源碼。

詳細參考 https://docs.google.com/document/d/1CZC2rcpxffTDfRDs6p1cfbmKNLA6x5O-NtkJglDaBVs/edit#.

esm

詳細參考 adjusted proposal: ES module "esm": true package.json flag.

6. react-native 相關字段

react-native: 使用 react 組件技術寫原生APP。

react-native
{
  "main": "./lib/main.js",
  "react-native": "./lib/main.react-native.js"
}

指定該模塊供 react-native 使用的入口文件。

如果這個字段未定義,則回退到 main 字段指向的文件。

源代碼查看.

7. webpack 相關字段 sideEffects
{
  "sideEffects": true|false
}

聲明該模塊是否包含 sideEffects(副作用),從而可以為 tree-shaking 提供更大的優化空間。

詳細參考 sideEffects example, proposal for marking functions as pure, eslint-plugin-tree-shaking.

8. microbundle 相關字段

microbundle: 基于 rollup 零配置快速打包工具。

source
{
  "source": "src/index.js"
}

源文件入口文件。

詳細參考 Specifying builds in package.json.

umd:main
{
  "umd:main": "dist/main.umd.js"
}

umd 模式 bundle 文件。

詳細參考 Specifying builds in package.json.

8. parcel 相關字段

parcel: 零配置打包工具。

source

查看 parcel-bundler/parcel#1652.

9. babel 相關字段

babel: es6 -> es5 轉碼器。

babel

配置 babel。

10. eslint 相關字段

eslint: js 代碼檢查與優化。

eslintConfig

配置 eslint。

11. jest 相關字段

jest: js 測試庫。

jest
{
  "jest": {
    "verbose": true
  }
}

配置 jest。

詳細參考 jest docs.

12. stylelint 相關字段

stylelint: style 代碼檢查與優化。

stylelint

配置 stylelint

詳細參考 New configuration loader.

13. ava 相關字段

ava: js 測試庫。

ava
{
  "ava": {
    "require": [ "@std/esm" ]
  }
}

配置 ava。

詳細參考 ava configuration.

14. nyc 相關字段

nyc: istanbul.js 命令行。

nyc
{
  "nyc": {
    "extension": [".js", ".mjs"],
    "require": ["@std/esm"]
  }
}

配置 nyc。

詳細參考 nyc docs.

15. CommonJS 保留字段

保留字段: build, default, email, external, files, imports, maintainer, paths, platform, require, summary, test, using, downloads, uid.

不可用字段: id, type, 以 _$ 開頭的字段。

16. Standard JS 相關字段

Standard JS: js 代碼檢查與優化。

standard
{
  "standard": {
    "parser": "babel-eslint",
    "ignore": [
      "**/out/",
      "/lib/select2/",
      "/lib/ckeditor/",
      "tmp.js"
    ]
  }
}

配置 standard.

詳細參考 https://standardjs.com/.

17. 其他 style

聲明當前模塊包含 style 部分,并指定入口文件。

支持的工具:

parcelify

npm-less

rework-npm

npm-css

詳細參考 Package.json "style" Attribute, istf-spec.

less

style 一樣,但是是 less 文件。

支持的工具:

npm-less

18. 更多

參考 package.json fields explained.

19. 后續

更多博客,查看 https://github.com/senntyou/blogs

作者:深予之 (@senntyou)

版權聲明:自由轉載-非商用-非衍生-保持署名(創意共享3.0許可證)

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/97703.html

相關文章

  • 前端進階(13) - 搭建自己的前端腳手架

    摘要:搭建自己的前端腳手架一般新開發一個項目時,我們會首先搭建好一個腳手架,然后才會開始寫代碼。搭建腳手架可以用等命令行工具,也可以直接用等模板,如果這些都不能滿足你的個性化需求,可以嘗試搭建自己的前端腳手架。 搭建自己的前端腳手架 一般新開發一個項目時,我們會首先搭建好一個腳手架,然后才會開始寫代碼。搭建腳手架可以用 create-react-app、vue-cli、yeoman 等命令行...

    lykops 評論0 收藏0
  • Nodejs開發簡單的腳手架工具

    摘要:本文主要是介紹開發一個簡單的腳手架,了解開發的基本流程最終通過鏈接到全局包。完成之后,就可以把腳手架發布到上面,通過進行全局安裝,就可以在自己本機上執行來初始化項目,這樣便完成了一個簡單的腳手架工具了。 腳手架,這個名詞對于作為前端的我們來說,也許并不陌生吧,像vue-cli,react-native-cli等,全局安裝后,只需要在命令行中敲入一個簡單的命令,便可幫我們快速的生成一個初...

    sean 評論0 收藏0
  • 2018 年了,你還是只會 npm install 嗎

    摘要:無需手動拷貝文件或者創建軟鏈接到目錄,有更優雅的解決方案。這是因為識別協議的,得知這個包需要直接從文件系統中獲取,會自動創建軟鏈接到中,完成安裝過程。 nodejs 社區乃至 Web 前端工程化領域發展到今天,作為 node 自帶的包管理工具的 npm 已經成為每個前端開發者必備的工具。但是現實狀況是,我們很多人對這個nodejs基礎設施的使用和了解還停留在: 會用 npm insta...

    libxd 評論0 收藏0
  • package.json文件各字段的說明

    摘要:字段由腳本命令組成的字典,這些命令運行在包的各個生命周期中。在打包過程中,如果遇到字段會優先使用字段表示的路徑下的文件,如果不存在,則用字段表示的作為入口,并按照的規范打包。其中還分析了文件中字段和字段的不同以及和兩個字段的區別。 所有用npm下載的包或者要上傳至npm的模塊都會有一個package.json文件,這個文件總是存在于模塊(或者包)的根目錄下,這個文件到底是干嘛的,現在就...

    yzd 評論0 收藏0
  • Express 實戰(八):利用 MongoDB 進行數據持久化

    摘要:在使用過程中我們可以通過增加哈希次數來提高數據的安全性。當然,對密碼的哈希操作應該在保存數據之前。 showImg(https://segmentfault.com/img/remote/1460000010821081); 毫無疑問,幾乎所有的應用都會涉及到數據存儲。但是 Express 框架本身只能通過程序變量來保存數據,它并不提供數據持久化功能。而僅僅通過內存來保存數據是無法應對...

    yanbingyun1990 評論0 收藏0

發表評論

0條評論

denson

|高級講師

TA的文章

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