webpack build后的文件找不到?以及不能使用import?

webpack build完之后的bundle.js是存在了内存里,配置什么参数可以让它直接build在文件系统中,现在是找不到bundle.js

我的webpack版本是2以上的,在webpack.config.js中使用import xxx from "./xx/xx.js"的时候,报错unexpected token import,但是在其他被打包的js文件中就可以使用import

webpack2是可以使用import、require的,并不是node的,现在没有引入ES6,build的文件就是放在了内存中啊,现在可以跑通,而且页面可以请求到build/bundle.js,但是在电脑里的文件系统里面build下就是空的

webpack.config.js的内容:

var webpack = require("webpack");
var CommonsChunkPlugin = webpack.optimize.CommonsChunkPlugin;
import WriteFilePlugin from 'write-file-webpack-plugin';

module.exports = {

    entry: {
        index: __dirname + "/public/js/index.js",
        appOverview: __dirname + "/public/js/appOverview.js",
        'vendor': ['jquery']
    },
    output: {
        path: __dirname + '/build',
        filename: "[name].bundle.js",
        publicPath:"/build"
    },
    module: {
        loaders: [
            {
                test:/\.css$/,
                loader:'style-loader!css-loader'
            }
        ],
    },
    // devtool: 'eval-source-map',//配置生成Source Maps,选择合适的选项
    devtool: process.env.WEBPACK_DEVTOOL || 'source-map',
    plugins:[
        new webpack.ProvidePlugin({
            $:"jquery",
            jQuery:"jquery",
            "window.jQuery":"jquery"
        }),

        new CommonsChunkPlugin({
            name: 'vendor',
            minChunks: Infinity
        }),
        new WriteFilePlugin()
    ],
    devServer: {
        contentBase: "./public",//本地服务器所加载的页面所在的目录
        historyApiFallback: true,//不跳转
        inline: true,//实时刷新
        port:"8081"
    }

};
阅读 12.4k
7 个回答

...如果是想在webpack的配置文件中获取生成后的文件不好意思做不到。。

因为webpack配置需要被导入webpack来生成文件那么webpack配置文件必然是在生成文件之前执行的。。

还有webpack的配置文件用不了import的原因是nodejs还不支持。webpack的配置文件是执行在纯nodejs环境中。

如果你的文件没有输出到文件系统说明,你用的是webpack-dev-server,请使用webpack

我的webpack这样配置是OK的,能找到build后的文件,build出来的文件也能正常运行
图片描述

webpack.config.js改为webpack.config.babel.js

webpack2要求 require和module.exports以及import和export default必须成对出现。你代码中用了module.exports,所以必须要求用require。

能不能用import要看你Node的版本。

build的文件怎么会在内存里呢,当然是在文件系统里,路径是__dirname/build下,具体要看你__dirname是什么。

我是提问者

bundle文件找不到的问题,解决方法
发现是使用方式的问题,需要在命令行中输入webpack手动build一下,才会显式的build到publicPath中,我之前是执行的webpack-dev-server,这种方式build出来的bundle文件是保存在内存中的

webpack.config.js中不能使用import,解决方法:
关于webpack配置文件中import和require的写法,官方文档的说明:
https://webpack.js.org/concep...

新手上路,请多包涵

要进行webpack才会把文件保存到磁盘,uild的时候是保存在内存

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题