Imm*_*ion 7 javascript import node.js ecmascript-6 webpack
CommonJS 导入const webpack = require('webpack');工作正常,但 ES6import webpack from 'webpack';没有。
来自Webpack 文档:
webpack 版本 2 原生支持 ES6 模块语法。
但它对我来说不是开箱即用的。
我也试过:
babel-loader的JS文件;但这一切都行不通。
包.json
"scripts": {
"build:dev": "webpack --config webpack.config.dev.babel"
},
"devDependencies": {
"babel-loader": "^7.1.4",
"webpack": "^4.8.3",
"webpack-cli": "^2.1.3",
"webpack-merge": "^4.1.2"
}
Run Code Online (Sandbox Code Playgroud)
webpack.config.common.babel.js
export const /* in this implied like default */ module = {
loaders: [
{
test: /\.js$/,
loader: 'babel-loader',
exclude: '/node_modules/'
}
],
};
Run Code Online (Sandbox Code Playgroud)
webpack.config.dev.babel.js
import webpack from 'webpack';
import merge from 'webpack-merge';
import commonConfig from './webpack.config.common.babel';
export default merge(commonConfig, {
mode: 'development',
plugins: [
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify('development')
})
]
});
Run Code Online (Sandbox Code Playgroud)
.babelrc
{
"presets": ["es2015"]
}
Run Code Online (Sandbox Code Playgroud)
当我输入时,npm run build:dev它会抛出:
import webpack from 'webpack';
^^^^^^
SyntaxError: Unexpected token import
Run Code Online (Sandbox Code Playgroud)
问题:
babel-loader包装?Kev*_*vin -10
好吧,我注意到的第一件事是你不能在 webpack 文件中使用“import”。你需要“要求”:
const webpack = require('webpack');
Run Code Online (Sandbox Code Playgroud)
你不能使用 import,因为那是 ES6,如果你还没有安装 babel,你如何使用 ES6?没有任何 JS 引擎(据我所知)原生支持 ES6,更不用说 Node.js 了。
另外,我认为您会收到 ES2015 的警告 - 我认为现在应该是“babel-preset-env”。
| 归档时间: |
|
| 查看次数: |
5438 次 |
| 最近记录: |