首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Webpack跑过呼呼,webpack不会出错,不会完成,也不会做任何事情

Webpack跑过呼呼,webpack不会出错,不会完成,也不会做任何事情
EN

Stack Overflow用户
提问于 2019-01-20 04:48:02
回答 1查看 487关注 0票数 4

试着用webpack把老系统改造成npm,然后嘟嘟声叫着webpack。只是尝试使用webpack加载NPM文件,而不运行其他任何东西,其余的grunt文件完成加载和丑化等工作,并运行自己的节点服务器。它到了这一点就冻结了,再也不会回来了。

代码语言:javascript
复制
Loading "grunt-webpack" plugin

Registering "/Users/***/***/***/node_modules/grunt-webpack/tasks" tasks.
Loading "webpack-dev-server.js" tasks...OK
+ webpack-dev-server
Loading "webpack.js" tasks...OK
+ webpack

Running "webpack" task

这是我的单调代码(显然是超级basic )

代码语言:javascript
复制
webpack: {
  options: require("./config/webpack.dev.js"),
},

下面是dev文件

代码语言:javascript
复制
const webpack = require('webpack');
const helpers = require('./helpers');
const merge = require('webpack-merge');

const HtmlWebpackPlugin = require('html-webpack-plugin');
const { BaseHrefWebpackPlugin } = require('base-href-webpack-plugin');
const CopyWebpackPlugin = require('copy-webpack-plugin');
const ConcatPlugin = require('webpack-concat-plugin');
const ngInventory = require('./ng1-vendor-index.js');

const common = require('./webpack.common.js');

const ENV = process.env.NODE_ENV = process.env.ENV = 'dev';

module.exports = merge(common(ENV), {
    devtool: 'source-map',

    module: {
        rules: [
            {
                test: /\.(ts|js)$/,
                loaders: ['angular-router-loader'],
            },
            {
                test: /\.((s*)css)$/,
                use: [{
                    loader: 'style-loader',
                },{
                    loader: 'css-loader',
                },{
                    loader: 'sass-loader',
                }]
            },
            {
                test: /src\/.+\.(ts|js)$/,
                exclude: /(node_modules|\.spec\.ts$)/,
                loader: 'istanbul-instrumenter-loader',
                enforce: 'post',
                options: {
                    esModules: true
                }
            }
        ]
    },
    debug: true,
    devTool: 'eval',
    plugins: [
        new ConcatPlugin({
            uglify: false,
            sourceMap: true,
            name: 'vendor',
            outputPath: './',
            fileName: '[name].[hash].js',
            filesToConcat: ngInventory.vendor1
        }),

        new BaseHrefWebpackPlugin({ baseHref: '/'}),

        new HtmlWebpackPlugin({
            favicon: helpers.root('client/assets/image/favicon.png'),
            template: "./client/index.html",
            filename: "./client/index.html",
        }),
       new webpack.NoEmitOnErrorsPlugin(),
    ],
});

下面是通用文件:

代码语言:javascript
复制
const path = require('path');
const webpack = require('webpack');
const nodeExternals = require('webpack-node-externals')
const helpers = require('./helpers');

module.exports = env => ({
    entry: {
        server: './server/app.js',
    },
    resolve: {
        extensions: ['.ts', '.js']
    },
    output: {
        path: helpers.root(`dist/${env}`),
        publicPath: '/',
        filename: '[name].js'
    },
    target: 'node',
    node: {
        // Need this when working with express, otherwise the build fails
        __dirname: false,   // if you don't put this is, __dirname
        __filename: false,  // and __filename return blank or /
    },
    externals: [nodeExternals()],

    module: {
        rules: [
            {
            // Transpiles ES6-8 into ES5
                test: /\.js$/,
                exclude: /node_modules/,
                use: {
                  loader: "babel-loader"
                }
            },
            {
                test: /\.html$/,
                include: [
                    helpers.root('client'),
                ],
                loader: 'html-loader'
            },

            {
                test: /\.((s*)css)%/,
                include: [
                    helpers.root('client/app'),
                    helpers.root('client/components'),
                ],
                exclude: 'node_modules/',
                loaders: ['to-string-loader', 'css-loader', 'sass-loader']
            },

            {
                test: /\.(woff|woff2|eot|tts)$/,
                use: [{
                    loader: 'file-loader'
                }]
            }
        ]
    },

    plugins: [

        new webpack.DefinePlugin({
            'process.env': {
                'ENV': JSON.stringify(env)
            }
        }),

        new webpack.ContextReplacementPlugin(/\@angular(\\|\/)core(\\|\/)esm5/, path.join(__dirname, './client')),
    ]
});

供应商索引文件中的一个示例:

代码语言:javascript
复制
const helper = require('./helpers');

exports.vendor1 = [
    helper.root('node_modules/lodash/lodash.js'),
    helper.root('node_modules/lodash-deep/lodash-deep.js'),
...
...
]

我只是真的不确定该怎么做,无法调出任何google结果或堆叠结果,因为也没有发生错误。我已经尝试了所有详细级别的日志记录,但都没有用。我到底错过了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-22 06:01:10

the documentation所示,您还没有配置任何目标,比如devprod。您只指定了options。你想要的

代码语言:javascript
复制
webpack: {
  options: {},
  dev: require("./config/webpack.dev.js"),
},

顺便说一句,在Grunt中使用Webpack是没有好处的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54271266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档