ParcelJS:使用相同的代码构建 HTML 到不同的子目录

ParcelJS: Build HTML to different subdirectories using the same code

我有两个 .html 文件使用相同的 Javascript 代码和资产。由于它们代表同一站点的不同语言版本,我想用 parcel 将它们构建到不同的子目录。

目前,我正在以非对称方式构建这些。 .html 文件是入口点,index.html 是英文版本:

当前输入:

  |-*.css, *.js, ...
  |–index.html
  |-de.html

当前输出:

dist
  |-*.css, *.js, ...
  |-index.html
  |-de.html

当前构建命令

parcel build --public-url . index.html de.html

但是,我希望它们以更对称的方式存在:

所需输入:

  |-*.css, *.js, ...
  |–en
     |-index.html
  |-de
     |-index.html

期望的输出:

dist
  |-*.css, *.js, ...
  |–en
    |- index.html
  |-de
    |- index.html

我想知道两件事:

我能够使用错误报告中的这个例子自己解决它 here。因为我只想保留入口点的文件结构(在我的例子中是 html 文件),所以这很容易实现。

例如,使用以下输入

|- test.js
|- locales
   |- en
      |- index.html
   |- de
      |- index.html

我得到以下输出

dist
|- test.js
|- en
   |- index.html
|- de
   |- index.html

在我的package.json中使用这个命令:

parcel build locales/**/*.html --public-url ../

要在其中一个 html 文件中使用 test.js,必须按此结构向上移动两个目录:

<script src="../../test.js"></script>

当然也可以省略子目录locales,那么在脚本中只需要../即可。

如果要保留非入口点的目录结构,似乎并不那么容易,但对于我来说,事实证明它非常容易。