使用 Yarn Plug'n'Play 复制库的资源

ban*_*yan 5 yarnpkg

我有在构建时复制资产的代码。我想知道使用Yarn Plug'n'Play执行相同操作的最佳方法是什么,因为 node_modules 不存在。

new CopyWebpackPlugin([
  { from: 'node_modules/pdfjs-dist/cmaps/', to: 'static/cmaps/' },
]),
Run Code Online (Sandbox Code Playgroud)

yarn cache dir告诉我目录,并且在.pnp.js.

  ["pdfjs-dist", new Map([
    ["2.0.943", {
      packageLocation: path.resolve(__dirname, "../../Library/Caches/Yarn/v3/npm-pdfjs-dist-2.0.943-32fb9a2d863df5a1d89521a0b3cd900c16e7edde/node_modules/pdfjs-dist/"),
Run Code Online (Sandbox Code Playgroud)

我应该像以前那样解析文件并复制吗?或者有更好的办法吗?

Cam*_*ick 0

from在 Yarn Plug n' Play 中,您可以使用 获取目录的基本路径require.resolve('name-of-package')。在这种情况下,就像

const path = require('path');
const modulePath = require.resolve('pdfjs-dist');
const fromPath = path.join(modulePath, 'cmaps');
Run Code Online (Sandbox Code Playgroud)