我有以下js文件(非ES6文件):(关于SO的其他问题,是关于导入ES6类型模块,但在这里我正在寻找使用导入语法导入非ES6类型模块.
== abc.js
module.exports = {
checkSomething: function(a,b) {
console.log("Checked");
}
}
Run Code Online (Sandbox Code Playgroud)
现在我希望使用"import"语法在我的其他文件中导入它.
import abc from './abc';
Run Code Online (Sandbox Code Playgroud)
那可能吗?
NS:我的项目目前是ES6和非ES6代码的混合.所以,我能够使用ES6类模块导入,所以想知道我是否可以为上述情况做同样的事情.
我正在使用Node.js编写应用程序。具体来说,我正在使用Node v10.3.0。该应用程序位于的目录中./my-module-console/index.js。这个应用程式的的package.json档案位于./my-module-console/package.json。此应用程序引用了中定义的类./my-module/items/。应该注意的是,它my-module代表了自己的包装。该软件包在中定义./my-module/package.json。index.js中的代码如下所示:
'use strict';
import { Item } from '../my-module/items/item.js';
async function entry() {
let item = await Item.FindById(1);
console.log(item);
}
entry();
Run Code Online (Sandbox Code Playgroud)
当我尝试运行此命令时,出现以下错误:
import { Item } from '../my-module/items/item.js';
^
SyntaxError: Unexpected token {
Run Code Online (Sandbox Code Playgroud)
我的进口货单有什么问题?在我看来,这是正确的。我误会了吗?
item.js
class Item {
constructor() {}
async static FindById(id) {
console.log('finding item by id: ' + id);
}
};
module.exports = Item;
Run Code Online (Sandbox Code Playgroud)
谢谢!
在 Nodejs 中,语句import Obj from 'module_1'与const Obj = require('module_1')? 这是 Obj 应该是构造函数的时候。我想知道,因为使用 import 语句似乎对我不起作用,所以我想知道是否有其他的编写方式。
我们将gulpfile.jsin 节点转换v13.8.0为 ES6,如下所示:
import { src, dest, series, parallel, watch } from 'gulp'
import nodemon from 'gulp-nodemon' // normal nodemon does not display an error on app crash
import env from 'gulp-env'
import browser from 'browser-sync'
import sass from 'gulp-sass'
// Tasks
export default {
cssTranspile: cssTranspile,
jsTranspile: jsTranspile,
server: series(startNodemon, startBrowserSync),
default: series(
parallel(
cssTranspile,
jsTranspile
),
startNodemon,
startBrowserSync,
function () {
watch('public/scss/*.scss', cssTranspile)
}
)
}
Run Code Online (Sandbox Code Playgroud)
简单运行时报告的错误gulp是:
internal/modules/cjs/loader.js:1160
throw new ERR_REQUIRE_ESM(filename, parentPath, …Run Code Online (Sandbox Code Playgroud) 我在index.js中有这个
import express from 'express'
import data from './data/data'
const app = express();
const PORT = 3000;
app.listen(PORT, () =>
console.log(`Your server is running on ${PORT}`)
);
Run Code Online (Sandbox Code Playgroud)
这是我的package.json
{
"name": "express-app",
"version": "1.0.0",
"description": "backend provisioning",
"main": "app.js",
"scripts": {
"start": "nodemon ./index.js --exec babel-node -e js"
},
"author": "B",
"license": "ISC",
"devDependencies": {
"babel-cli": "^6.26.0",
"babel-preset-env": "^1.6.1",
"babel-preset-stage-0": "^6.24.1"
},
"dependencies": {
"express": "^4.16.3"
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行nodemon时,我得到了
[nodemon] 1.17.3
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: …Run Code Online (Sandbox Code Playgroud)