当我在Aurelia的skeleton-navigation/skeleton-typescript-webpack中编辑src / app.html时,webpack失败并出现以下错误。
WARNING in ./src/app.html~
Module parse failed: /Users/foo/skeleton-test/src/app.html~ Unexpected token (1:0)
You may need an appropriate loader to handle this file type.
如何将Emacs生成的app.html~和#app.html等文件排除为备份?
我在webpack.config.ts中添加了plugins:
条目,但它无效。
...
import * as webpack from 'webpack';
...
let config = generateConfig(
{
entry: {
'app': ['./src/main' /* this is filled by the aurelia-webpack-plugin */],
'aurelia-bootstrap': coreBundles.bootstrap,
'aurelia': coreBundles.aurelia.filter(pkg => coreBundles.bootstrap.indexOf(pkg) === -1)
},
output: {
path: outDir,
},
plugins: [
new webpack.LoaderOptionsPlugin({
options: {
exclude: [ /.*~$/, /.*#.*/ ],
}
})
]
},
答案 0 :(得分:1)
Webpack仅包含您的应用中实际使用的文件。通常,您有一个入口点可以导入所需的所有内容,并且实际只包含那些文件及其依赖项,其他所有内容都被忽略。不幸的是,aurelia-webpack-plugin
决定将src/
目录中的所有内容都包含在条目中,坦率地说这不是一个好主意。它看起来不像aurelia-webpack-plugin
有一个排除某些文件的选项。从GitHub问题Add a switch to disable filling the app context with all files from src #72来看,这样的功能已经计划好了,但似乎还没有实现。
无论如何,您无法告诉webpack排除您明确要求的内容(在这种情况下,您使用的插件,而不是您自己),以及如何处理它。而你已经尝试将它们从装载机中排除会使事情变得更糟,因为这意味着这些文件不应该由装载机处理,而只是包含它们,因为它不起作用。 #39;无效的JavaScript。
值得庆幸的是,您要排除的文件与您的编辑器相关,最简单的解决方案是将其配置为将这些备份文件存储在其他位置,而不是当前目录,这是大多数人最喜欢的。对于Emacs,您可以查看How do I control how Emacs makes backup files?。