nodejs导入需要转换

时间:2017-02-23 04:14:47

标签: javascript node.js import npm require

在这里学习NodeJ。问题是当我试图寻找答案时,我找不到我要找的东西。可能是因为这太基础或没有问题。

我正在使用angular2处理nodejs。很自然地,我有类似的东西:

import { stuff } from 'some_module'

但我正在尝试使用具有以下用法示例的程序包:

var stuff = require('some_module')

显然,当我使用导入时,我的代码不起作用,否则我不会在这里发帖。是因为我做错了吗?或者我运气不好,这个特定的模块不能用于导入?当我看到require的使用样本(' some_stuff')时,有人能说明如何编写正确的import语句,所以我可以使用我从npm下载的其他模块吗?

提前感谢。

编辑: 所以我尝试了npm install requirejs --save。然后我写了上面的require语句。但我在包装上得到了404 ......

2 个答案:

答案 0 :(得分:2)

您可以使用导入,但必须使用babel运行您的应用。

您必须将此行添加到 package.json 文件

"scripts": {
    "start": "NODE_ENV=production node_modules/.bin/babel-node --presets 'es2015' src/server.js",  
    "build": "NODE_ENV=production node_modules/.bin/webpack -p"
  },
  "dependencies": {
    "babel-cli": "^6.11.4",
    "babel-core": "^6.13.2",
    "babel-loader": "^6.2.5",
    "babel-preset-es2015": "^6.13.2"
  },
  "devDependencies": {
    "http-server": "^0.9.0",
    "webpack": "^1.13.2",
    "webpack-dev-server": "^1.14.1"
  }

src / server.js 文件是您的主文件位置

然后使用以下命令运行文件

npm run start

使用import { stuff } from 'module';时 然后你可以直接在你的程序中使用 stuff()

但是当你使用var stuff = require('module');时 那么你需要在你的程序中做 stuff.stuff()

答案 1 :(得分:0)

有趣的是原始语法

var stuff = require('some_module')

不适合你。如果你的应用程序是从Angular CLI搭建的,那么它应该支持开箱即用的import和require语句。

例如,我在Angular 2组件中使用MSR,如下所示:

var MediaStreamRecorder = require('msr');