Javascript 业力:在相对路径中找不到模块
我很难忍受因果报应没有加载一个特定的文件。我是一个关于因果报应的初学者,但是我花了一整天的时间潜入文档,寻找类似的问题,但没有成功 启动karma进程时,加载配置文件时会失败。以下是错误: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
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;