商城系統(tǒng) 注冊

兩種構(gòu)建npm方式是什么?

2020-09-14|HiShop
導(dǎo)讀:從 1.03.2006302 (或 1.03.2006302) 開始,我們提供了兩種構(gòu)建 npm 的方式: 默認(rèn)的構(gòu)建 npm 方式 默認(rèn)情況下,在 miniprogramRoot 內(nèi)正確配置了 package.json 并執(zhí)行 npm install 之后,其構(gòu)建 npm 的結(jié)果是...

  從 1.03.2006302 (或 1.03.2006302) 開始,我們提供了兩種構(gòu)建 npm 的方式:

  默認(rèn)的構(gòu)建 npm 方式

  默認(rèn)情況下,在 miniprogramRoot 內(nèi)正確配置了 package.json 并執(zhí)行 npm install 之后,其構(gòu)建 npm 的結(jié)果是,為每一個 package.json 對應(yīng)的 node_modules 構(gòu)建一份 miniprogram_npm,并放置在對應(yīng) package.json 所在目錄的子目錄中。參考 demo

  構(gòu)建 npm 前

  ├── miniprogram

  │ ├── app.js

  │ ├── app.json

  │ ├── app.wxss

  │ ├── index

  │ │ ├── 略

  │ ├── node_modules // 可被默認(rèn)方式構(gòu)建 npm,因為它在 miniprogramRoot 內(nèi)

  │ ├── package.json

  │ └── sub_package

  │ ├── node_modules // 可被默認(rèn)方式構(gòu)建 npm,因為它在 miniprogramRoot 內(nèi)

  │ ├── package.json

  │ └── sub_package_page

  ├── node_modules // 不被默認(rèn)方式構(gòu)建 npm,因為它不在 miniprogramRoot 內(nèi)

  ├── package.json

  └── project.config.json // 其中存在配置 `"miniprogramRoot": "./miniprogram"`

  構(gòu)建 npm 后

  ├── miniprogram

  │ ├── app.js

  │ ├── app.json

  │ ├── app.wxss

  │ ├── index

  │ │ ├── 略

  │ ├── miniprogram_npm

  │ ├── node_modules // 可被默認(rèn)方式構(gòu)建 npm,因為它在 miniprogramRoot 內(nèi) --> 同級的 miniprogram_npm 是這份 node_modules 的構(gòu)建結(jié)果

  │ ├── package.json

  │ └── sub_package

  │ ├── miniprogram_npm

  │ ├── node_modules // 可被默認(rèn)方式構(gòu)建 npm,因為它在 miniprogramRoot 內(nèi) --> 同級的 miniprogram_npm 是這份 node_modules 的構(gòu)建結(jié)果

  │ ├── package.json

  │ └── sub_package_page

  ├── node_modules // 不被默認(rèn)方式構(gòu)建 npm,因為它不在 miniprogramRoot 內(nèi) --> 它并沒有對應(yīng)的 miniprogram_npm 生成

  ├── package.json

  └── project.config.json // 其中存在配置 `"miniprogramRoot": "./miniprogram"`

  自定義 node_modules 和 miniprogram_npm 位置的構(gòu)建 npm 方式

  與 “默認(rèn)的構(gòu)建 npm 方式” 不一樣,此種方式需要開發(fā)者在 project.config.json 中指定 mode_modules 的位置 和目標(biāo) miniprogram_npm 的位置。參考demo

  使用方法

  配置 project.config.json 的 setting.packNpmManually 為 true,開啟自定義 node_modules 和 miniprogram_npm 位置的構(gòu)建 npm 方式

  配置 project.config.json 的 setting.packNpmRelationList 項,指定 packageJsonPath 和 miniprogramNpmDistDir 的位置

  其中 packNpmRelationList 的格式為

  packageNpmRelationList: Array<{

  "packageJsonPath": string,

  "miniprogramNpmDistDir": string

  }>

  packageJsonPath 表示 node_modules 源對應(yīng)的 package.json

  miniprogramNpmDistDir 表示 node_modules 的構(gòu)建結(jié)果目標(biāo)位置

  構(gòu)建 npm 前

  .

  ├── miniprogram

  │ ├── app.js

  │ ├── app.json

  │ ├── app.wxss

  │ ├── index

  │ ├── sitemap.json

  │ └── sub_package

  │ └── sub_package_page

  ├── project.config.json

  ├── src_node_modules_1

  │ ├── node_modules

  │ └── package.json

  └── src_node_modules_2

  ├── node_modules

  └── package.json

  其中 project.config.json 存在配置

  "setting": {

  "packNpmManually": true,

  "packNpmRelationList": [

  {

  "packageJsonPath": "./src_node_modules_1/package.json",

  "miniprogramNpmDistDir": "./miniprogram/"

  },

  {

  "packageJsonPath": "./src_node_modules_2/package.json",

  "miniprogramNpmDistDir": "./miniprogram/sub_package"

  }

  ]

  }

  構(gòu)建 npm 后

  .

  ├── miniprogram

  │ ├── app.js

  │ ├── app.json

  │ ├── app.wxss

  │ ├── index

  │ ├── miniprogram_npm // 由 src_node_modules_1/node_modules 構(gòu)建得到

  │ ├── sitemap.json

  │ └── sub_package

  │ ├── miniprogram_npm // 由 src_node_modules_2/node_modules 構(gòu)建得到

  │ └── sub_package_page

  ├── project.config.json

  ├── src_node_modules_1

  │ ├── node_modules

  │ └── package.json

  └── src_node_modules_2

  ├── node_modules

  └── package.json

電話咨詢 預(yù)約演示 0元開店