【问题标题】:Karma webpack Error: no such file or directory /_karma_webpack_/Karma webpack 错误:没有这样的文件或目录 /_karma_webpack_/
【发布时间】:2016-05-23 00:35:11
【问题描述】:

我正在使用脚本

// src/test-index.js
const context = require.context('./src', true, /-test\.js$/)
context.keys().forEach(context)

而且我总是遇到错误

> NODE_ENV=test karma start --single-run --no-auto-watch
...
ERROR [karma]: { Error: no such file or directory
    at MemoryFileSystem.readFileSync (PROJECT_ROOT/node_modules/memory-fs/lib/MemoryFileSystem.js:107:10)
    at MemoryFileSystem.readFile (PROJECT_ROOT/node_modules/memory-fs/lib/MemoryFileSystem.js:297:21)
    at doRead (PROJECT_ROOT/node_modules/karma-webpack/index.js:156:26)
    at Plugin.readFile (PROJECT_ROOT/node_modules/karma-webpack/index.js:160:3)
    at _combinedTickCallback (internal/process/next_tick.js:67:7)
    at process._tickCallback (internal/process/next_tick.js:98:9)
  code: 'ENOENT',
  errno: 34,
  message: 'no such file or directory',
  path: '/_karma_webpack_/test-index.js' }
Error: no such file or directory
    at MemoryFileSystem.readFileSync (PROJECT_ROOT/node_modules/memory-fs/lib/MemoryFileSystem.js:107:10)
    at MemoryFileSystem.readFile (PROJECT_ROOT/node_modules/memory-fs/lib/MemoryFileSystem.js:297:21)
    at doRead (PROJECT_ROOT/node_modules/karma-webpack/index.js:156:26)
    at Plugin.readFile (PROJECT_ROOT/node_modules/karma-webpack/index.js:160:3)
    at _combinedTickCallback (internal/process/next_tick.js:67:7)
    at process._tickCallback (internal/process/next_tick.js:98:9)

这里是gist 的链接,我的karma.conf.jswebpack.config.js。我忽略了其他文件,因为这些(加上上面的test-index.js)是当前进程中唯一涉及的文件。

节点 v6.2.0,npm v3.8.9(通过 nvm 安装)。所有依赖项都是在过去几个小时内安装的,所以我使用的是最新版本。

关于什么可能是错误的或我可以尝试什么的任何想法?

【问题讨论】:

    标签: webpack karma-runner karma-webpack


    【解决方案1】:

    问题在于尝试将我的原始配置重用于 karma webpack 配置键。

    我已通过将业力配置更改为:

    webpack: {
      module: {
        loaders: [
          {
            test: /\.js$/,
            exclude: /node_modules/,
            loader: 'babel'
          }
        ]
      },
      externals: {
        cheerio: 'window',
        'react/addons': true,
        'react/lib/ExecutionEnvironment': true,
        'react/lib/ReactContext': true
      },
      node: {
        fs: 'empty'
      }
    },
    

    这里重要的是module 对象和node 对象(以防止无法找到模块“fs” 错误)。 externals 部分特定于enzyme,是从他们的Enzyme + Karma + Webpack guide 复制而来的。同样具体到酶是如何工作的,注意没有明确的resolve 声明,因为webpack 自动添加'.js''.json',因为酶在内部需要这两个文件。另一种方法是显式声明 json 加载器。

    【讨论】:

      猜你喜欢
      • 2016-07-22
      • 2016-11-29
      • 2021-10-31
      • 1970-01-01
      • 2013-08-08
      • 2013-11-04
      • 2012-02-18
      • 2012-10-21
      • 2011-03-22
      相关资源
      最近更新 更多