我们正试图将我们的前端构建转换为使用Brunch。这是我到目前为止的早午餐配置:
module.exports = {
files: {
javascripts: {
joinTo: {
'vendor.js': /^(?!source)/,
'app.js': /^source/
},
entryPoints: {
'source/scripts/app.jsx': 'app.js'
}
},
stylesheets: {joinTo: 'core.css'},
},
paths: {
watched: ['source']
},
modules: {
autoRequire: {
'app.js': ['source/scripts/app']
}
},
plugins: {
babel: {presets: ['latest', 'react']},
postcss: {processors: [require('autoprefixer')]},
assetsmanager: {
copyTo: {
'assets': ['source/resources/*']
}
},
static: {
processors: [
require('html-brunch-static')({
processors: [
require('pug-brunch-static')({
fileMatch: 'source/views/home.pug',
fileTransform: (filename) => {
filename = filename.replace(/\.pug$/, '.html');
filename = filename.replace('views/', '');
return filename;
}
})
]
})
]
}
}
};
我将modules.autoRequire
部分添加到Brunch配置中,然后发生了以下错误。没有modules.autoRequire
我没有控制台错误,但我的网络应用程序也无法启动。运行brunch build
会导致错误,但是当我打开构建的网站时,我会收到错误
未捕获错误:无法从'lodash / lodash.js'中找到模块'缓冲区'
stacktrace中的第一行指向vendor.js中的这个函数
var require = function(name, loaderPath) {
if (loaderPath == null) loaderPath = '/';
var path = expandAlias(name);
if (has.call(cache, path)) return cache[path].exports;
if (has.call(modules, path)) return initModule(path, modules[path]);
throw new Error("Cannot find module '" + name + "' from '" + loaderPath + "'");
};
我不知道如何继续让我的构建工作。这issue似乎可能是相关的。
如何克服此错误? (请随时询问其他信息。我不确定什么都有用。)
答案 0 :(得分:1)
Brunch从package.json
中定义的(特定于早午餐的)npm包中获取构建管道的步骤。因此,请确保包含所有需要的包(或删除不必要的包)。