Webpack 2 - 无法在字符串上创建 属性 'mappings'
Webpack 2 - Cannot create property 'mappings' on string
正在从工作的 Webpack v1 配置迁移到 Webpack 2。但是 运行在尝试 运行 构建时遇到错误:
ERROR in ./src/index.jsx
Module build failed: TypeError: /home/pierce/Projects/my-js-app/src/index.jsx: Cannot create property 'mappings' on string
我已经更新了加载程序以匹配新格式:
module: {
rules: [
{
test: /\.(js|jsx)$/,
exclude: /node_modules/,
loader: "babel-loader"
},
{
test: /\.(jpg|png)$/,
loader: 'file-loader',
query: {
name: '[path][name].[hash].[ext]',
},
},
{
test: /\.css$/,
loader: "style-loader!css-loader"
},
{
test: /\.scss$/,
use: [
{
loader: 'style-loader'
},
{
loader: 'css-loader'
},
{
loader: 'sass-loader',
options: { sourceMap: true }
}
]
},
{
test: /\.(woff|woff2|eot|ttf|svg)(\?v=\d+\.\d+\.\d+)?/,
loader: 'url-loader',
query: {
limit: 100000
}
},
{
test: /\.icon-svg$/,
use: [{loader:'babel-loader'}, {loader: 'svg-react-loader'}]
},
// Bootstrap 3
{
test: /bootstrap-sass\/assets\/javascripts\//,
loader: 'imports-loader?jQuery=jquery'
}
]
},
好像有些东西没有按照以前的方式编译,因此导致类型错误。
原来我是 babelifing 两次。
如果您还将 webpack.config.js
拆分为不同环境的单独文件,请确保 webpack.dev.config.js
不包含 babel-loader
条目,如果您的 webpack.base.config.js
确实。
否则,如果你第二次使用加载程序两次会导致错误。这不是 Webpack 2 错误,而是 webpack splitting-configs-and-missing-a-small-thing 错误
在我的编译中遇到了类似的问题。发现我正在为 .js
和 .jsx
都使用 babel loader。
已删除 .jsx
并按预期工作。
我的 webpack.config.js
片段如下所示。
{
test: /\.js$/,
exclude: [/(node_modules)/],
use: [
{
loader: 'react-hot-loader'
},
{
loader: 'babel-loader',
options: {
presets: ['react', 'es2015', 'stage-0'],
plugins: [
'transform-class-properties',
'transform-decorators-legacy'
]
}
}
]
}
如果其他人遇到同样的问题,我必须从加载程序中删除以下内容才能正常工作
{
test: /\.jsx?$/,
use: ['react-hot-loader/webpack']
}
在我的例子中,当我从 webpack
中删除 devtool: 'inline-source-map'
时它有所帮助
正在从工作的 Webpack v1 配置迁移到 Webpack 2。但是 运行在尝试 运行 构建时遇到错误:
ERROR in ./src/index.jsx
Module build failed: TypeError: /home/pierce/Projects/my-js-app/src/index.jsx: Cannot create property 'mappings' on string
我已经更新了加载程序以匹配新格式:
module: {
rules: [
{
test: /\.(js|jsx)$/,
exclude: /node_modules/,
loader: "babel-loader"
},
{
test: /\.(jpg|png)$/,
loader: 'file-loader',
query: {
name: '[path][name].[hash].[ext]',
},
},
{
test: /\.css$/,
loader: "style-loader!css-loader"
},
{
test: /\.scss$/,
use: [
{
loader: 'style-loader'
},
{
loader: 'css-loader'
},
{
loader: 'sass-loader',
options: { sourceMap: true }
}
]
},
{
test: /\.(woff|woff2|eot|ttf|svg)(\?v=\d+\.\d+\.\d+)?/,
loader: 'url-loader',
query: {
limit: 100000
}
},
{
test: /\.icon-svg$/,
use: [{loader:'babel-loader'}, {loader: 'svg-react-loader'}]
},
// Bootstrap 3
{
test: /bootstrap-sass\/assets\/javascripts\//,
loader: 'imports-loader?jQuery=jquery'
}
]
},
好像有些东西没有按照以前的方式编译,因此导致类型错误。
原来我是 babelifing 两次。
如果您还将 webpack.config.js
拆分为不同环境的单独文件,请确保 webpack.dev.config.js
不包含 babel-loader
条目,如果您的 webpack.base.config.js
确实。
否则,如果你第二次使用加载程序两次会导致错误。这不是 Webpack 2 错误,而是 webpack splitting-configs-and-missing-a-small-thing 错误
在我的编译中遇到了类似的问题。发现我正在为 .js
和 .jsx
都使用 babel loader。
已删除 .jsx
并按预期工作。
我的 webpack.config.js
片段如下所示。
{
test: /\.js$/,
exclude: [/(node_modules)/],
use: [
{
loader: 'react-hot-loader'
},
{
loader: 'babel-loader',
options: {
presets: ['react', 'es2015', 'stage-0'],
plugins: [
'transform-class-properties',
'transform-decorators-legacy'
]
}
}
]
}
如果其他人遇到同样的问题,我必须从加载程序中删除以下内容才能正常工作
{
test: /\.jsx?$/,
use: ['react-hot-loader/webpack']
}
在我的例子中,当我从 webpack
中删除devtool: 'inline-source-map'
时它有所帮助