Tag: commonjs

Webpack需要expression式外部

我有一个expression式要求,应该在运行时解决,但我不能得到我的头围绕这个简单的例子的webpackconfiguration: import something from 'module'; import pkg from './package.json'; let a; if (pkg.main) { a = require(pkg.main); } 生成的版本应该包含module但在运行时也需要./package.json和pkg.main作为commonjs模块 – 换句话说,将它们从版本中排除。 我的webpack.config.js到目前为止: var webpack = require('webpack'); module.exports = { entry: './src/main.js', output: { filename: '[name].js', path: './build' }, target: 'node-webkit', plugins: [ new webpack.ExternalsPlugin('commonjs', './package.json') ], module: { noParse: /\.min\.js/, exprContextRegExp: /$^/, exprContextCritical: false, loaders: […]

使用NodeJS别名模块

这里的一些背景: 这不是我不能使用Webpack,而是我不想使用Webpack 。 我想尽可能保持一切为“香草”。 目前在项目中创build模块时,您必须要求使用相对或绝对path,例如在以下目录中。 project/ ├── index.js ├── lib/ │ ├── network/ │ │ request.js │ │ response.js ├── pages/ │ ├── foo.js 考虑到我们在index.js中,我们会通过导入请求 var networkRequest = require('./lib/network/request.js') 如果我们在foo.js,我们会通过导入请求 var networkRequest = require('../lib/network/request.js') 我想知道的是,如果有什么办法,可以在Package.json或其他地方设置一个本地别名: localPackages = [ { name: 'network-request', path: './lib/network/request.js' } ]; 你可以做的 var networkRequest = require('network-request') 从任何文件,它将提供正确的path。

为什么在组件导出期间应用HOC而不是导入组件

我基本的理解是,像连接(用于连接REDX存储)和其他HOC的HOC在输出时应用于组件。 喜欢这个 import React, { Component } from 'react'; import './App.css'; import myHoc from './myHoc/index'; class App extends Component { render() { return ( <div className="App"> </div>); } } export default myHoc({})(App); 如果在import过程中使用HOC会更好,因为这样可以更容易地制造可重复使用的组件。 相同的组件可以从商店或道具中挑选道具,并且由父组件负责检查在组件上应该应用什么HOC。 我知道我们可以使用容器组件和呈现子组件,但只是在JSX中添加代码(如果有许多容器组件,将看起来不错) 尽pipe我们可以这样做 import React, { Component } from 'react'; import './App.css'; import myHoc from './myHoc/index'; import AppChild from './AppChild'; const NewAppChild […]

不能用汇总的commonjs导入npm模块:“require is not defined”

我在ES6项目上工作,使用汇总和babel进行汇总。 除了当我尝试导入使用commonjs的npm模块(特别是require('something'))在我的浏览器中得到一个错误“require is not defined”(这意味着它没有正确编译节点模块从commonjs到ES5)。 但是,我使用rollup-plugin-node-resolve和rollup-plugin-commonjs ,如果我能正确理解,应该做这个工作。 这是我的汇总configuration文件: import babel from 'rollup-plugin-babel'; import eslint from 'rollup-plugin-eslint'; import resolve from 'rollup-plugin-node-resolve'; // to import node_modules packages easily import commonjs from 'rollup-plugin-commonjs'; // convert commonjs to es6 (in case you use require) export default { input: 'src/main.js', output: { file:'build/index.js', format: 'iife' }, sourcemap: 'inline', plugins: [ […]

如何在文件结构中组织nodejs导出,但没有创build具有相同结构的文件

我有一个像这样的文件结构的库 root |– index.js |—–folder1 |—- module a …. …. other modules that under other folders 我不希望图书馆的用户这样input模块a import {…} from "mylibrary/folder1/moudleAIndex" 如果开发者可以做的话就会很好 import {…} from "mylibrary/moduleA" 有没有办法做到上面没有改变我当前的文件结构?

终极JS模块解决scheme与UMD的依赖?

我在CommonJS编写的一些需要高质量UMD包装的JavaScript模块上进行维护和协作。 依赖来自npm但至less有CommonJS和AMD支持(或者我可以添加它)。 CommonJS版本继续npm UMD包装模块将被推到bower 包装必须在浏览器(AMD +全局)和Node.js(如果可能的话,任何其他CommonJS系统)中工作。 任何自动化应该最好发生使用Grunt(我很咕噜)。 我已经花了很多时间在谷歌上search,但这是一个巨大的混乱。 一些有希望的人不会削减它(或者我错过了一些完全可能的东西): browserify gluejs 咕噜-UMD 我到处都find这样的绝望构造: http : //rathercurio.us/building-umd-modules-with-dependencies-with-browserify ,但是我对这样的hackery并不是很酷。 任何好的提示呢? 我会采取任何指针或链接或提示。 编辑:澄清:最后一件事说,理想的解决scheme不应该要求我们手工组装大块的样板模板代码,并创build新的错误。 我冷静configuration和指定的东西虽然。

express / sails.js模块导出私有方法和其他模块的关系

我了解module.export的用途 基本上,它期望一个function的对象: // Parent.js module.exports = { createChild: function(req, res) { … Child.Create(..) .. } } 1)模块对象中的函数如何能够调用其他模块? 例如,在Parent.js中,我也可以调用另一个模块Child.js。 2)如果我想添加私人functionParent.js(不能通过要求访问),可以访问父数据库就像module.export内的函数 例如: // Parent.js function validateInput(req) { } module.export = { }

在使用requireJs的方法中使用node require

是否可以在通过requirejs调用的文件中使用默认节点require函数? define(["require", "exports"], function(require, exports) { //… var Schema = require(DaoPublic._schemasDirectory + schemaFilename); } 我总是得到ReferenceError: module is not defined ,我也尝试使用requireJs加载模式,因为文件本身被编码为CommonJs,而不是AMD兼容的。 任何解决scheme 请注意,加载的模式是在CommonJS,我需要保持这种方式,因为它是由几个DAO,一些在AMD和CommonJs中使用。 (有趣的部分) 请求文件(模式)的示例: var userSchema = { /** * User Login, used as id to connect between all our platforms. */ login: { type: String, match: /^[a-zA-Z0-9_-]+$/, trim: true, required: true, notEmpty: true, unique: […]

什么javascript模块api duojs使用?

我使用duojs ,这是一个与browserify或组件不同的前端Web开发工具。 它允许你从文件本身直接导入css和js,而不需要任何外部的包装清单。 我试图了解如何编写我的js,所以它适用于duojs,但我不确定它使用什么样的体系结构模块定义。 我已经在文档中find它,但在那里找不到它。 从我可以告诉它看起来像duojs编译器包装commonjs样式包装中的所有组件: 看看这个编译后的js文件在他们的回购 (下面是一个片段): /** * Return newest require. */ return require; })({ 1: [function(require, module, exports) { /** * Module Dependencies */ var Highlight = require('segmentio/highlight'); /** * Code highlighting. */ new Highlight() .use(require('segmentio/highlight-javascript')) .use(require('segmentio/highlight-xml')) .use(require('segmentio/highlight-css')) .use(require('segmentio/highlight-json')) .all(); 任何人都可以从代码中知道这里使用了什么样的js模块API? 对我来说,这看起来像一个commonjs风格的模块定义,但我不知道,它也可能是节点。

将CommonJS转换为AMD

我在NPM和Bower上发布了一个简单的CommonJS模块,基本上看起来像这样: function Foo(){} module.exports = new Foo(); 现在转换为AMD格式的最简单的方法就是发布AMD兼容的第二个版本,例如: define(function (require, exports, module) { function Foo(){} module.exports = new Foo(); }); 但我认为有一种方法可以使用requirejs.config来填充CommonJS模块,如下所示: requirejs.config({ paths:{ 'foo':'assets/vendor/foo' }, shim:{ 'foo' :{ exports: 'Foo' } } }); 但是这似乎不起作用。 我认为垫片工具可以完成上面为你做的包装,但是我不完全确定。