簡體   English   中英

TS 從腳本里面讀取依賴版本 package.json

[英]TS Read Dependency version from the script inside package.json

我有一個具有以下結構的 package.json 的反應項目:

"name": "@repo/packagex",
  "description": "package X",
  "version": "1.0.0",
  "scripts": {
    "build": "some script to move resources into a folder named resources/3.4.5/",

  },
  "dependencies": {
    "@repo/package-y": "3.4.5",

}
...

如果你注意到了,我正在嘗試將一些資源復制到一個以我的@repo/package-y 的版本號命名的文件夾中,因此每當有人更新@repo/package-y 的版本時,復制文件夾名稱應該更改為那個版本。

嘗試過的解決方案:我嘗試如下操作,但在部署時沒有解析版本號,但 sol 1 在本地工作正常:

sol 1 tried
resources/${npm_package_dependencies__repo_package_y}

sol 2 tried
resources/%npm_package_dependencies__repo_package_y%

有沒有跨平台的方式來訪問這個版本? 如果我在 js/ts function 中工作,我只需導入 package.json 文件 object 並獲取我想要的任何屬性,但現在它位於 package.json 文件中。

PS:使用 webpack 和 babel

正如您提到的 Webpack,我認為您可以使用copy-webpack-plugin

假設在您的情況下 package.json 看起來如下:

{
  "name": "@repo/packagex",
  "version": "1.0.0",
  "scripts": {
    "build": "webpack"
  },
  "dependencies": {
    "@repo/package-y": "3.4.5"
  },
  "devDependencies": {
    "copy-webpack-plugin": "^10.2.4",
    "webpack": "^5.70.0",
    "webpack-cli": "^4.9.2"
  }
}

  • './src/index.js' webpack 的默認條目應該存在,不允許 webpack 抱怨下面的配置
  • './some-resources/file.xyz' 如果存在則將被復制

webpack.config.js內容:

const {dependencies} = require('./package.json');
const CopyWebpackPlugin = require('copy-webpack-plugin');

/**
 * @type {import('webpack').Configuration}
 */
const config = {
  mode: 'development',
  plugins: [
    new CopyWebpackPlugin({
      patterns: Object.keys(dependencies).map((dep) => ({
        to: `resources/${dependencies[dep]}/`,
        from: '*.*',
        context: './some-resources'
      }))
    })
  ]
};

module.exports = config;

output 將放在以下路徑下。/dist/resources/3.4.5/some-resources/file.xyz

如果在控制台中一切順利 webpack 應該像下面這樣拋出 smth output

@repo/packagex@1.0.0 build
webpack

asset main.js 1.18 KiB [compared for emit] (name: main)
asset resources/3.4.5/file.xyz 0 bytes [compared for emit] [from: some-resources/file.xyz] [copied]<br/>
./src/index.js 1 bytes [built] [code generated]
webpack 5.70.0 compiled successfully in 49 ms

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM