Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 业力:在相对路径中找不到模块_Javascript_Node.js_Unit Testing_Karma Runner_Browserify - Fatal编程技术网

Javascript 业力:在相对路径中找不到模块

Javascript 业力:在相对路径中找不到模块,javascript,node.js,unit-testing,karma-runner,browserify,Javascript,Node.js,Unit Testing,Karma Runner,Browserify,我很难忍受因果报应没有加载一个特定的文件。我是一个关于因果报应的初学者,但是我花了一整天的时间潜入文档,寻找类似的问题,但没有成功 启动karma进程时,加载配置文件时会失败。以下是错误: Chrome 52.0.2743 (Linux 0.0.0) ERROR Uncaught Error: Cannot find module './development' at /tmp/node_modules/browser-pack/_prelude.js:1:0 <- /tmp/7b47ee

我很难忍受因果报应没有加载一个特定的文件。我是一个关于因果报应的初学者,但是我花了一整天的时间潜入文档,寻找类似的问题,但没有成功

启动karma进程时,加载配置文件时会失败。以下是错误:

Chrome 52.0.2743 (Linux 0.0.0) ERROR
Uncaught Error: Cannot find module './development'
at /tmp/node_modules/browser-pack/_prelude.js:1:0 <- /tmp/7b47eeb55cec3f8cc510b5cd637c570a.browserify:1
karma.conf.js

'use strict';
module.exports = function(config) {

  config.set({

    basePath: '',
    frameworks: ['mocha', 'sinon-chai', 'browserify'],
    files: [
      'src/**/*.test.js'
    ],
    exclude: [
    ],
    preprocessors: {
      'src/**/*.test.js': ['browserify']
    },
    reporters: ['progress', 'mocha'],
    browserify: {
      debug: true,
      transform: [
        ['babelify',{
          presets: ['es2015'],
        }]
      ]
    },
    port: 9876,
    colors: true,
    logLevel: config.LOG_DEBUG,
    autoWatch: true,
    browsers: ['Chrome'],
    singleRun: false,
    concurrency: Infinity
  })
}
在src/config/index.js中失败

'use strict';

const env = process.env.NODE_ENV || 'development';
const config = require('./' + env);

module.exports = config;
为了给你们一个复制它的方法,我构建了一个小节点应用程序:

首先:

 npm run test
版本:node-v:v6.2.0 npm-v:3.8.9


非常感谢您的帮助。

我认为问题在于您使用了require with variables,这在browserify中不受支持

而不是写:

const env = process.env.NODE_ENV || 'development';
const config = require('./' + env);
尝试:

const config = process.env.NODE_ENV === "production" ? require('./production') : require('./development');
规则是不能在require中使用任何变量

另请参见以下解决方案:

由于Browserify不执行代码本身,“env”值将永远不会被替换。 见:

我的解决方法是修改配置文件,如下所示(src/config/index.js): "严格使用",

const env = process.env.NODE_ENV || 'development';
let config = require('./development');

if (env === 'production') config = require('./production');

module.exports = config;

这不是最好的解决方案,因为我必须“列出”所有环境,但测试现在工作正常。对我来说,一个决定性的解决办法是打开webpack以更恰当地处理这个问题。

我解决了我的问题,并在你的问题46秒后发布了我自己的答案,所以我没有看到它。但你说得对,我会接受你的回答。谢谢你的帮助!
const env = process.env.NODE_ENV || 'development';
let config = require('./development');

if (env === 'production') config = require('./production');

module.exports = config;