gpt4 book ai didi

javascript - Webpack 无法在外部包中构建 ES6

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:43:29 25 4
gpt4 key购买 nike

我正在尝试在项目中使用 ES6 npm 包(在本例中称为 gamesystem)并使用 webpack(和 babel)构建它无法在外部依赖项中构建任何 ES6 代码,这是为什么?如果我有与具有相对路径的依赖项相同的代码,它就可以正常工作。

应用代码:

'use strict';

import World from 'gamesystem'; // Breaks
//import World from '../node_modules/gamesystem'; // Also breaks
//import World from '../gamesystem'; // Works (copied the same directory gamesystem outside the node_modules directory)

let world = new World();

错误:

ERROR in ./~/gamesystem/World.js
Module parse failed: /home/user/project/node_modules/gamesystem/World.js Line 3: Unexpected token
You may need an appropriate loader to handle this file type.
| 'use strict';
|
| import System from './System';
|
| export default class World {
@ ./src/app.js 3:18-39

网络包配置:

'use strict';

// Modules
let WebpackNotifierPlugin = require('webpack-notifier');
let HtmlWebpackPlugin = require('html-webpack-plugin');

let config = {
entry: {
app: __dirname + '/../src/app.js'
},
devtool: 'source-map',
devServer: {
stats: {
modules: false,
cached: false,
colors: true,
chunk: false
},
proxy: require('./devProxy')
},
module: {
loaders: [{
test: /\.js$/,
loader: 'babel',
exclude: /node_modules/,
query: {
presets: ['es2015', 'stage-0']
}
},
{
test: /\.css$/,
loader: 'style!css'
},
{
test: /\.html$/,
loader: 'raw'
}]
},
plugins: [
new WebpackNotifierPlugin(),
new HtmlWebpackPlugin({
template: __dirname + '/../src/index.html',
inject: 'body',
minify: false
})
]
};

module.exports = config;

最佳答案

你明确地从 babel-loader 中排除了 node_modules:

exclude: /node_modules/,

如果你想通过 babel 传递来自 node_modules 的模块,你需要调整它。您可能会考虑这样的显式包含:

// be sure to req path
// var path = require('path')

include: [
// Include everything from your app path
path.resolve(__dirname, 'my-app-js-path'),

// Include gamesystem modules
/\bgamesystem\b/,
],

关于javascript - Webpack 无法在外部包中构建 ES6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35273956/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com