Webpack + Babel require 在全局范围内失败但在函数内部工作
Webpack + Babel require fails in global scope but works inside functions
我正在使用 webpack 1.12.14 并且不能要求图像到全局常量,例如
const icon = require("icon.svg");
class TestClass {
失败并显示 [错误:找不到模块 'icon.svg'] 代码:'MODULE_NOT_FOUND' }
Error: Cannot find module 'icon.svg'
at Function.Module._resolveFilename (module.js:325:15)
at Function.Module._load (module.js:276:25)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (Test.js:15:19)
at Module._compile (module.js:409:26)
at loader (PATH/node_modules/babel-register/lib/node.js:126:5)
at Object.require.extensions.(anonymous function) [as .js] (PATH/node_modules/babel-register/lib/node.js:136:7)
来自我的 webpack.config:
resolve: {
modulesDirectories: ["web_modules", "node_modules", "images"]
},
和装载机:
{
test: /\.js(x?)$/,
loader: "babel",
exclude: /node_modules/,
query: babelOptions
},
{
test: /\.svg$/,
loaders: [
"file?name=[hash].[ext]"
]
}
我的babelOptions.js
exports.babelOptions = {
presets: ["es2015", "react"]
}
我可以在函数或构造函数中要求,例如:
class TestClass {
constructor() {
const icon = require("icon.svg");
}
}
升级到 webpack 3.4 解决了
我正在使用 webpack 1.12.14 并且不能要求图像到全局常量,例如
const icon = require("icon.svg");
class TestClass {
失败并显示 [错误:找不到模块 'icon.svg'] 代码:'MODULE_NOT_FOUND' }
Error: Cannot find module 'icon.svg'
at Function.Module._resolveFilename (module.js:325:15)
at Function.Module._load (module.js:276:25)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (Test.js:15:19)
at Module._compile (module.js:409:26)
at loader (PATH/node_modules/babel-register/lib/node.js:126:5)
at Object.require.extensions.(anonymous function) [as .js] (PATH/node_modules/babel-register/lib/node.js:136:7)
来自我的 webpack.config:
resolve: {
modulesDirectories: ["web_modules", "node_modules", "images"]
},
和装载机:
{
test: /\.js(x?)$/,
loader: "babel",
exclude: /node_modules/,
query: babelOptions
},
{
test: /\.svg$/,
loaders: [
"file?name=[hash].[ext]"
]
}
我的babelOptions.js
exports.babelOptions = {
presets: ["es2015", "react"]
}
我可以在函数或构造函数中要求,例如:
class TestClass {
constructor() {
const icon = require("icon.svg");
}
}
升级到 webpack 3.4 解决了