相关疑难解决方法(0)

如何使node.js需要绝对?(而不是亲戚)

我想要我的文件总是由我的项目的根目录而不是相对于当前模块.

例如,如果你看看https://github.com/visionmedia/express/blob/2820f2227de0229c5d7f28009aa432f9f3a7b5f9/examples/downloads/app.js第6行,你会看到

express = require('../../')
Run Code Online (Sandbox Code Playgroud)

这真是糟糕的IMO.想象一下,我想把我的所有例子都放在根目录上,只有一个级别.这是不可能的,因为我必须在每个示例中更新超过30个示例和多次.对此:

express = require('../')
Run Code Online (Sandbox Code Playgroud)

我的解决方案是基于root的特殊情况:如果一个字符串以$开头,那么它相对于项目的根文件夹.

任何帮助表示赞赏,谢谢

更新2

现在我正在使用require.js,它允许您以一种方式编写,并在客户端和服务器上运行.Require.js还允许您创建自定义路径.-«

更新3

现在我转到webpack + gulp,我使用enhanced-require来处理服务器端的模块.请参阅此处的基本原理:http://hackhat.com/p/110/module-loader-webpack-vs-requirejs-vs-browserify/

require node.js

220
推荐指数
19
解决办法
16万
查看次数

使用es6和babel-node从根目录导入节点模块

我正在用一个使用babel transpiler的es6编写节点应用程序.

我有2个文件index.jsmy-module.js我的根目录

- index.js
- my-module.js
Run Code Online (Sandbox Code Playgroud)

我-module.js

export let myFunc = () => {
  console.log('myFunc was called!!!');
}
Run Code Online (Sandbox Code Playgroud)

index.js

import {myFunc} from './my-module';
myFunc();
Run Code Online (Sandbox Code Playgroud)

如果我从命令行运行以下行,一切都按预期工作.

$ babel-node index.js >> myFunc was called!!!
Run Code Online (Sandbox Code Playgroud)

但是如果我在导入my-module时删除了点:

import {myFunc} from '/my-module';
myFunc();
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

Error: Cannot find module '/my-module'
Run Code Online (Sandbox Code Playgroud)

我无法使用绝对路径导入模块的任何原因?无论如何改变.babelrc配置来支持它?

谢谢

ecmascript-6 babeljs

42
推荐指数
3
解决办法
5万
查看次数

ES6 Module Loader中简单import语句和System.import之间的区别

是否有人能够解释ES6模块加载器(或Polyfills,如System.js,Webpack等)的简单importSystem.import声明之间的区别

就像是

System.import('https://code.jquery.com/jquery.js').then();
Run Code Online (Sandbox Code Playgroud)

似乎是可能的,也是一种简单的

 import 'jquery';
Run Code Online (Sandbox Code Playgroud)

是否System.import有import语句后回调的唯一可能性?

javascript ecmascript-harmony ecmascript-6 es6-module-loader

2
推荐指数
1
解决办法
918
查看次数