Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 来自UglifyJs的错误:语法错误:意外标记:运算符(>;)_Javascript_Webpack_Uglifyjs - Fatal编程技术网

Javascript 来自UglifyJs的错误:语法错误:意外标记:运算符(>;)

Javascript 来自UglifyJs的错误:语法错误:意外标记:运算符(>;),javascript,webpack,uglifyjs,Javascript,Webpack,Uglifyjs,我在尝试运行用于生产的网页包时出错 ERROR in js/main.21dbce548a76ffc14cfb.js from UglifyJs SyntaxError: Unexpected token: operator (>) [./~/tmi.js/lib/utils.js:3,0][js/main.21dbce548a76ffc14cfb.js:3529,20] utils.js:3,0(与我的缩小版js相同)是: 所以我假设抛出错误是因为它正在读取ES6,但它不理解ES6?(

我在尝试运行用于生产的网页包时出错

ERROR in js/main.21dbce548a76ffc14cfb.js from UglifyJs
SyntaxError: Unexpected token: operator (>) [./~/tmi.js/lib/utils.js:3,0][js/main.21dbce548a76ffc14cfb.js:3529,20]
utils.js:3,0(与我的缩小版js相同)是:

所以我假设抛出错误是因为它正在读取ES6,但它不理解ES6?(箭头功能)

我看不出这里出了什么问题,这是我的webpack.config.js

// changed some loader syntax after reading
// https://webpack.js.org/how-to/upgrade-from-webpack-1/

const path = require(`path`);

const webpack = require(`webpack`);
const {UglifyJsPlugin} = webpack.optimize;

const CopyWebpackPlugin = require(`copy-webpack-plugin`);
const ExtractTextWebpackPlugin = require(`extract-text-webpack-plugin`);
const configHtmls = require(`webpack-config-htmls`)();

const extractCSS = new ExtractTextWebpackPlugin(`css/style.css`);

// change for production build on different server path
const publicPath = `/`;

// hard copy assets folder for:
// - srcset images (not loaded through html-loader )
// - json files (through fetch)
// - fonts via WebFontLoader

const copy = new CopyWebpackPlugin([{
  from: `./src/assets`,
  to: `assets`
}], {
  ignore: [ `.DS_Store` ]
});

const config = {

  entry: [
    `./src/css/style.css`,
    `./src/js/script.js`
  ],

  resolve: {
    // import files without extension import ... from './Test'
    extensions: [`.js`, `.jsx`, `.css`]
  },

  output: {
    path: path.join(__dirname, `server`, `public`),
    filename: `js/[name].[hash].js`,
    publicPath
  },

  devtool: `sourcemap`,

  module: {

    rules: [
      {
        test: /\.css$/,
        loader: extractCSS.extract([
          {
            loader: `css`,
            options: {
              importLoaders: 1
            }
          },
          {
            loader: `postcss`
          }
        ])
      },
      {
        test: /\.html$/,
        loader: `html`,
        options: {
          attrs: [
            `audio:src`,
            `img:src`,
            `video:src`,
            `source:srcset`
          ] // read src from video, img & audio tag
        }
      },
      {
        test: /\.(jsx?)$/,
        exclude: /node_modules/,
        use: [
          {
            loader: `babel`
          },
          {
            loader: `eslint`,
            options: {
              fix: true
            }
          }
        ]
      },
      {
        test: /\.(svg|png|jpe?g|gif|webp)$/,
        loader: `url`,
        options: {
          limit: 1000, // inline if < 1 kb
          context: `./src`,
          name: `[path][name].[ext]`
        }
      },
      {
        test: /\.(mp3|mp4)$/,
        loader: `file`,
        options: {
          context: `./src`,
          name: `[path][name].[ext]`
        }
      }
    ]

  },

  plugins: [
    extractCSS,
    copy
  ]

};

if(process.env.NODE_ENV === `production`){

  //image optimizing
  config.module.rules.push({
    test: /\.(svg|png|jpe?g|gif)$/,
    loader: `image-webpack`,
    enforce: `pre`
  });

  config.plugins = [
    ...config.plugins,
    new UglifyJsPlugin({
      sourceMap: true, // false returns errors.. -p + plugin conflict
      comments: false
    })
  ];

}

config.plugins = [...config.plugins, ...configHtmls.plugins];

module.exports = config;
//读取后更改了一些加载程序语法
// https://webpack.js.org/how-to/upgrade-from-webpack-1/
const path=require(`path`);
const webpack=require(`webpack`);
const{UglifyJsPlugin}=webpack.optimize;
const CopyWebpackPlugin=require(`copy webpack plugin`);
const ExtractTextWebpackPlugin=require(`extract text webpack plugin`);
const configHtmls=require(`webpack config htmls`));
const extractCSS=新的extractTextWebPackagePlugin(`css/style.css`);
//更改不同服务器路径上的生产构建
常量publicPath=`/`;
//硬拷贝资产文件夹,用于:
//-srcset图像(未通过html加载程序加载)
//-json文件(通过获取)
//-通过WebFontLoader使用字体
const copy=new CopyWebpackPlugin([{
发件人:`./src/assets`,
致:`资产`
}], {
忽略:[`.DS\u存储区`]
});
常量配置={
条目:[
`./src/css/style.css`,
`./src/js/script.js`
],
决心:{
//导入不带扩展名的文件导入…从“./Test”
扩展名:[`.js`、`.jsx`、`.css`]
},
输出:{
path:path.join(uu dirname,`server`,`public`),
文件名:`js/[name].[hash].js`,
公共道路
},
devtool:`sourcemap`,
模块:{
规则:[
{
测试:/\.css$/,,
加载程序:extractCSS.extract([
{
加载器:`css`,
选项:{
进口装载机:1
}
},
{
加载器:`postsss`
}
])
},
{
测试:/\.html$/,,
加载器:`html`,
选项:{
属性:[
`音频:src`,
`img:src`,
`视频:src`,
`资料来源:srcset`
]//从视频、img和音频标签读取src
}
},
{
测试:/\(jsx?)$/,
排除:/node_模块/,
使用:[
{
加载器:“巴贝尔`
},
{
加载器:`eslint`,
选项:{
修正:真的
}
}
]
},
{
测试:/\(svg | png | jpe?g | gif | webp)$/,
加载器:`url`,
选项:{
限制:1000,//如果小于1 kb,则为内联
上下文:`./src`,
名称:`[path][name].[ext]`
}
},
{
测试:/\(mp3 | mp4)$/,
加载器:`file`,
选项:{
上下文:`./src`,
名称:`[path][name].[ext]`
}
}
]
},
插件:[
提取CSS,
复制
]
};
if(process.env.NODE_env===`production`){
//图像优化
config.module.rules.push({
测试:/\(svg | png | jpe?g | gif)$/,
加载器:`image webpack`,
强制执行:`预`
});
config.plugins=[
…config.plugins,
新的UglifyJsPlugin({
sourceMap:true,//false返回错误..-p+插件冲突
评论:错
})
];
}
config.plugins=[…config.plugins,…configHtmls.plugins];
module.exports=config;

UglifyJs2有一个Harmony分支,它接受要缩小的ES6语法。此时,您需要创建一个webpack分支,并将webpack指向该分支


我最近回答了几个类似的问题。请查看或获取详细说明。

UglifyJs2有一个Harmony分支,它接受缩小的ES6语法。此时,您需要创建一个webpack分支,并将webpack指向该分支


我最近回答了几个类似的问题。请查看或获取详细说明。

OP的错误来自UglifyJs,正如公认的答案所解决的,本页的一些人可能会从babel获得错误,在这种情况下,请使用以下方法进行修复:
“预设”:[“es2015”]
添加到babel loader的
选项中。预设
部分,或者对于
.babelrc

OP的错误来自UglifyJs,正如公认的答案中所解决的,此页面的一些人可能从babel获得错误,在这种情况下,请使用以下方法进行修复:将
“预设”:[“es2015”]
添加到babel loader的
选项中。预设
部分,或者到
.babelrc

在我的例子中,我使用的是WebpackVersion1.14 我得到了他的帮助

步骤

  • 安装
    纱线添加uglifyes网页包插件
    (并删除
    纱线删除uglifyjs网页包插件
  • 然后安装
    纱线添加uglify-js-es6
  • 在webpack.config.js文件中将
    新建webpack.optimize.UglifyJsPlugin
    更改为
    新的UglifyJsPlugin

  • 然后我就可以建造了。谢谢

    就我而言,我使用的是webpack 1.14版 我得到了他的帮助

    步骤

  • 安装
    纱线添加uglifyes网页包插件
    (并删除
    纱线删除uglifyjs网页包插件
  • 然后安装
    纱线添加uglify-js-es6
  • 在webpack.config.js文件中将
    新建webpack.optimize.UglifyJsPlugin
    更改为
    新的UglifyJsPlugin

  • 然后我就可以建造了。谢谢

    您没有在
    babel
    部分用
    query
    指定
    预设
    s,所以您有
    .babelrc
    “预设”:[“es2015”]
    在其中吗?@clk回复发布:3接受回答:3您没有在
    babel
    部分用
    查询
    指定
    预设
    s,那么您是否有
    .babelrc
    中包含
    预设“:[“es2015”]
    ?@clk回复发布:3接受回答:3
    // changed some loader syntax after reading
    // https://webpack.js.org/how-to/upgrade-from-webpack-1/
    
    const path = require(`path`);
    
    const webpack = require(`webpack`);
    const {UglifyJsPlugin} = webpack.optimize;
    
    const CopyWebpackPlugin = require(`copy-webpack-plugin`);
    const ExtractTextWebpackPlugin = require(`extract-text-webpack-plugin`);
    const configHtmls = require(`webpack-config-htmls`)();
    
    const extractCSS = new ExtractTextWebpackPlugin(`css/style.css`);
    
    // change for production build on different server path
    const publicPath = `/`;
    
    // hard copy assets folder for:
    // - srcset images (not loaded through html-loader )
    // - json files (through fetch)
    // - fonts via WebFontLoader
    
    const copy = new CopyWebpackPlugin([{
      from: `./src/assets`,
      to: `assets`
    }], {
      ignore: [ `.DS_Store` ]
    });
    
    const config = {
    
      entry: [
        `./src/css/style.css`,
        `./src/js/script.js`
      ],
    
      resolve: {
        // import files without extension import ... from './Test'
        extensions: [`.js`, `.jsx`, `.css`]
      },
    
      output: {
        path: path.join(__dirname, `server`, `public`),
        filename: `js/[name].[hash].js`,
        publicPath
      },
    
      devtool: `sourcemap`,
    
      module: {
    
        rules: [
          {
            test: /\.css$/,
            loader: extractCSS.extract([
              {
                loader: `css`,
                options: {
                  importLoaders: 1
                }
              },
              {
                loader: `postcss`
              }
            ])
          },
          {
            test: /\.html$/,
            loader: `html`,
            options: {
              attrs: [
                `audio:src`,
                `img:src`,
                `video:src`,
                `source:srcset`
              ] // read src from video, img & audio tag
            }
          },
          {
            test: /\.(jsx?)$/,
            exclude: /node_modules/,
            use: [
              {
                loader: `babel`
              },
              {
                loader: `eslint`,
                options: {
                  fix: true
                }
              }
            ]
          },
          {
            test: /\.(svg|png|jpe?g|gif|webp)$/,
            loader: `url`,
            options: {
              limit: 1000, // inline if < 1 kb
              context: `./src`,
              name: `[path][name].[ext]`
            }
          },
          {
            test: /\.(mp3|mp4)$/,
            loader: `file`,
            options: {
              context: `./src`,
              name: `[path][name].[ext]`
            }
          }
        ]
    
      },
    
      plugins: [
        extractCSS,
        copy
      ]
    
    };
    
    if(process.env.NODE_ENV === `production`){
    
      //image optimizing
      config.module.rules.push({
        test: /\.(svg|png|jpe?g|gif)$/,
        loader: `image-webpack`,
        enforce: `pre`
      });
    
      config.plugins = [
        ...config.plugins,
        new UglifyJsPlugin({
          sourceMap: true, // false returns errors.. -p + plugin conflict
          comments: false
        })
      ];
    
    }
    
    config.plugins = [...config.plugins, ...configHtmls.plugins];
    
    module.exports = config;