排除app.html~和#app.html等文件

时间:2017-03-02 06:48:41

标签: webpack aurelia easy-webpack

当我在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: [ /.*~$/, /.*#.*/ ],
         }
       })
     ]
  },

1 个答案:

答案 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?