可能我错过了一些完全明显的东西。我尝试传递我的 main.js 文件,但似乎没有任何效果。
module.exports = function (eleventyConfig) {
eleventyConfig.addPassthroughCopy("./src/assets/js");
eleventyConfig.addWatchTarget("./src/assets/");
return {
dir: {
input: "src",
output: "public",
},
};
};
我的文件夹结构设置如下
📦eleventy-project
┣ 📂src
┃ ┣ 📂_includes
┃ ┃ ┗ 📜base.njk
┃ ┣ 📂assets
┃ ┃ ┗ 📂js
┃ ┃ ┗ 📜main.js
┃ ┗ 📜index.njk
┣ 📜.eleventy.js
┣ 📜package-lock.json
┗ 📜package.json
其他一切都有效。目标监视工作,输入和输出目录工作,但 passthroughCopy 不执行任何操作。
有人看到我的错误吗?
好吧,我真傻。直通似乎只在构建时生效,而不是在服务时生效(至少在 11ty 2.0 中)。网站可以工作,它只是在构建时复制文件。
只是在此处添加更多信息,因为我最终在此页面上遇到了类似的问题。
从 Eleventy v2.0 开始,开发服务器模拟复制文件——它创建一个引用并使用原始文件进行开发构建。这意味着当您运行
npx @11ty/eleventy --serve
时,您的文件将不会复制到您的 _site
文件夹中。
运行
npx @11ty/eleventy
(不带 --serve
)会将文件复制到 _site
文件夹。
但是;如果您在构建步骤期间需要这些文件,这对您没有帮助,您需要禁用它。您可以通过将以下内容添加到您的
eleventy.config.js
文件来做到这一点:
export default function (eleventyConfig) {
eleventyConfig.setServerPassthroughCopyBehavior("copy");
}
更多信息请点击这里: https://www.11ty.dev/docs/copy/#emulate-passthrough-copy-during-serve