我的应用程序与package.json中安装的模块的文件夹结构不同,我找不到让它工作的方法:
结构:
如何指定模块位于某处且应用程序位于其他位置?这甚至可能吗?如果我在构建设置的位置设置我的应用程序的src,一切都按预期工作。
我的简单webpack配置在哪里。
var getters = require('./../gulpfile.js/config/getters');
var path = require('path');
var appRoot = path.resolve(__dirname, '../src');
var appRoot2 = path.resolve(__dirname, '../../main/jcr_root/etc/designs/fit/includes/shared_assets/js/vueapps/chat_app/src');
module.exports = {
context: appRoot2,
entry: './main.js',
output: {
filename: 'app.js',
path: getters.js.vue.apps.chatapp.dist
},
module: {
loaders: [
{
test: /\.vue$/,
loader: 'vue-loader',
exclude: /node_modules/
},
{
test: /\.js$/,
loaders: 'babel-loader',
exclude: /node_modules/
}
]
},
resolve: {
modules: [
'node_modules'
]
}
};
我知道我有 appRoot 和 appRoot2 , appRoot 按预期工作, appRoot2 无法提供我这个错误。
找不到输入模块中的错误:错误:无法解决' babel-loader'在......
编辑:忘了提及我使用: " vue-loader":" ^ 9.4.0"。 " webpack":" ^ 2.2.0"。 " babel-loader":" ^ 6.3.2"。
EDIT2:搞定了,必须指定其他选项:
resolveLoader: {
modules: [
nodeRoot
],
}
另外在加载程序中必须添加此选项:
{
test: /\.js$/,
loaders: 'babel',
exclude: /node_modules/,
query: {
presets: [nodeRoot + '/babel-preset-es2015'],
}
}
使用预设的路径。