首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ES6功能遵从性

ES6功能遵从性
EN

Stack Overflow用户
提问于 2017-10-31 03:58:58
回答 3查看 194关注 0票数 0

嗨,我有问题,以更改导入语句的要求。我的所有文件都支持箭头函数和const、let等。当我更改要导入的请求语句时,我遇到了很多麻烦。

以下是我的文件:

我的Grunt文件:

代码语言:javascript
运行
复制
const request = require('request');
const webpackConfigDev = require('./webpack.config.dev');
const webpackConfigProd = require('./webpack.config.prod');

module.exports = function init(grunt) {
  require('time-grunt')(grunt);
  require('load-grunt-tasks')(grunt);

  const reloadPort = 35729;
  let files;

  grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    eslint: {
      target: ['app/**/*.js', 'clientSide/**/*.js', 'config/**/*.js',
        'test/**/*.js', 'app.js', 'Gruntfile.js'],
    },
    webpack: {
      options: {
        stats: !process.env.NODE_ENV || process.env.NODE_ENV === 'development',
      },
      prod: webpackConfigProd,
      dev: Object.assign({ watch: true }, webpackConfigDev),
    },

    mocha_istanbul: {
      coverage: {
        src: 'test/**/*.js',
        options: {
          check: {
            statements: 85,
            functions: 85,
            branches: 77,
          },
          excludes: [
            'app.js',
            'config/*',
            'migrations/xyz/*',
            'app/models/*',
          ],
        },
      },
    },
    mochaTest: {
      test: {
        options: {
          quiet: false,
          noFail: false,
        },
      },
      src: ['test/spec/**/*.js'],
    },
    develop: {
      server: {
        file: 'app.js',
      },
    },
    stylus: {
      dist: {
        files: {
          'public/css/style.css': 'public/css/style.styl',
        },
      },
    },


  grunt.config.requires('watch.js.files');
  files = grunt.config('watch.js.files');
  files = grunt.file.expand(files);

  // Load the npm dependencies into grunt
  grunt.loadNpmTasks('grunt-mocha-test');
  grunt.loadNpmTasks('grunt-mocha-istanbul');

  // Load webpack plugin npm tasks.
  grunt.loadNpmTasks('grunt-webpack');

  grunt.registerTask('delayed-livereload', 'Live reload after the node server has restarted.',
    () => {
      const done = this.async();
      setTimeout(() => {
        request.get(`http://localhost:${reloadPort}/changed?files=${files.join(',')}`,
          (err, res) => {
            const reloaded = !err && res.statusCode === 200;
            if (reloaded) {
              grunt.log.ok('Delayed live reload successful.');
            } else {
              grunt.log.error('Unable to make a delayed live reload.');
            }
            done(reloaded);
          });
      }, 500);
    });

  grunt.registerTask('test', [
    'env:test',
    'eslint',
    'mocha_istanbul',
  ]);

  grunt.registerTask('build', [
    'env:dev',
    'eslint',
    'stylus',
    'webpack',
    'mocha_istanbul',
    'develop',
  ]);

  // The default task just runs the project on dev
  grunt.registerTask('default', [
    'build',
    'watch',
  ]);
};

我刚刚在.js文件中从const改为import,但这并没有运行。当运行覆盖率时,所有的问题都会开始。请帮帮我。我从两天开始就一直在尝试解决这个问题。

EN

回答 3

Stack Overflow用户

发布于 2017-10-31 04:31:08

如果你喜欢冒险,并且真的想在Node.js中使用模块,那么有一种方法。Node.js 8.5 added support for ES Modules。有关如何使用它的文档可以在ECMAScript Modules中找到。以下是要点:

  • 使用Node.js 8.5或更高版本
  • 使用--experimental-modules标志
  • 对模块文件使用.mjs扩展

<代码>F211

票数 3
EN

Stack Overflow用户

发布于 2017-10-31 04:04:32

虽然import是ES6的一部分,但NodeJS还不支持它,并且直到最近才在浏览器中可用。所以你必须保留你的require语句。有关更多信息,请参阅this

票数 0
EN

Stack Overflow用户

发布于 2017-10-31 04:20:47

使用巴别塔加载器和预设在你的webpack配置转换es5到es6。Essentially

此外,还要为服务器创建一个webpack条目。目前,您仅将webpack用于客户端,因此服务器代码不会被转溢。服务器配置将与此类似。请按照链接进行操作,并对其值进行以下更改

代码语言:javascript
运行
复制
target: 'node',

  entry: {
    server: ['babel-polyfill', './src/server.js'],
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47023248

复制
相关文章

相似问题

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