代码之家  ›  专栏  ›  技术社区  ›  Jordan Enev

一旦通过npm脚本运行,Webpack就无法工作

  •  0
  • Jordan Enev  · 技术社区  · 8 年前

    在cli(cmd)中运行以下命令后,一切都很好:

    SET NODE_ENV=production webpack --config webpack.config.js
    

    如果我通过 什么都没有发生-既没有输出,也没有错误消息。我试图补充 --display-error-details ,但都是一样的。

    记住,我在窗户上。

    这是 webpack.config.js :

    var fs = require('fs');
    var path = require('path');
    var webpack = require('webpack');
    
    // Project configuration
    var entries = {
        'js/application': ['./app/main']
    };
    
    var appPath = path.resolve(__dirname, 'app');
    var buildPath = path.join(__dirname, 'build');
    var modulesPath = path.resolve(__dirname, 'node_modules');
    
    // We'll bundle some more files for dev purposes, hot-loader and stuff
    if (process.env.NODE_ENV != 'production') {
        entries = {
            'js/application': [
                'webpack-hot-middleware/client?https://localhost:3000',
                './app/main',
                './app/styles/main.less'
            ]
        };
    }
    
    // Webpack configuration
    module.exports =
    {
        devtool: 'source-map',
        entry: entries,
        output: {
            path: buildPath,
            filename: '[name].js'
        },
        resolve: {
            root: [modulesPath, appPath],
            extensions: ['', '.js', '.jsx']
        },
        plugins: [
            new webpack.HotModuleReplacementPlugin(),
            new webpack.NoErrorsPlugin(),
            // needed for UIkit
            new webpack.ProvidePlugin({ // http://webpack.github.io/docs/shimming-modules.html
                $: "jquery",
                jQuery: "jquery",
                L:"leaflet"
            })
        ],
        module: {
            noParse: [],
            loaders: [
                {
                    test: /\.jsx?$/,
                    loader: 'babel',
                    include: appPath
                }, {
                    test: /\.json/,
                    loader: "json-loader"
                }, {
                    test: /\.less$/,
                    loader: 'style!css!less'
                }, {
                    test: /\.(eot|woff|woff2|ttf|svg|png|jpg)$/,
                    loader: 'url-loader?limit=30000&name=[name]-[hash].[ext]'
                }
            ]
        }
    };
    

    这是 包裹json脚本 :

     "scripts": {
        "build:webpack": "SET NODE_ENV=production webpack --config webpack.config.js"
      },
    
    2 回复  |  直到 8 年前
        1
  •  2
  •   Community CDub    8 年前

    SET NODE_ENV={everything else} .要使脚本在Windows上工作,您需要将一行脚本更改为运行两个命令,例如。 SET NODE_ENV=production && webpack --config webpack.config.js .

    引自 documentation 抄袭 "How to run two commands in one line in Windows CMD?" :

    & [...] command1 & command2
    用于在一个命令行上分隔多个命令。Cmd。exe运行第一个命令,然后运行第二个命令。

    && [...] command1 && command2
    用于运行以下命令&&仅当符号前的命令成功时。Cmd。exe运行第一个命令,然后仅当第一个命令成功完成时才运行第二个命令。

        2
  •  0
  •   axm__    8 年前

    你试过npm吗 构建:webpack: https://docs.npmjs.com/misc/scripts