首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Watchify Excluded File编译问题

Watchify Excluded File编译问题
EN

Stack Overflow用户
提问于 2015-05-01 04:09:13
回答 1查看 402关注 0票数 2

我在尝试排除文件(like so in Browserify)时遇到了Watchify问题。

使用以下命令:

代码语言:javascript
复制
watchify scripts/main.js -o scripts/main.bundle.js -t strictify -v -x scripts/libs.js

它一开始编译得很好,但在对监视的文件进行任何更新时都会出现错误。这是完整的输出:

代码语言:javascript
复制
1036 bytes written to scripts/main.bundle.js (0.04 seconds)

fs.js:430
  binding.open(pathModule._makeLong(path),
          ^
TypeError: path must be a string
    at Object.fs.open (fs.js:430:11)
    at OpenReq.process (/usr/lib/node_modules/watchify/node_modules/chokidar/node_modules/readdirp/node_modules/graceful-fs/graceful-fs.js:55:16)
    at OpenReq.Req (/usr/lib/node_modules/watchify/node_modules/chokidar/node_modules/readdirp/node_modules/graceful-fs/graceful-fs.js:126:8)
    at new OpenReq (/usr/lib/node_modules/watchify/node_modules/chokidar/node_modules/readdirp/node_modules/graceful-fs/graceful-fs.js:49:7)
    at Object.open (/usr/lib/node_modules/watchify/node_modules/chokidar/node_modules/readdirp/node_modules/graceful-fs/graceful-fs.js:41:3)
    at ReadStream.open (fs.js:1509:6)
    at new ReadStream (fs.js:1496:10)
    at Object.fs.createReadStream (fs.js:1450:10)
    at Deps.readFile (/usr/lib/node_modules/watchify/node_modules/browserify/node_modules/module-deps/index.js:190:17)
    at /usr/lib/node_modules/watchify/node_modules/browserify/node_modules/module-deps/index.js:365:14

这是一个已知的问题,有任何解决方法吗?现在,我可以编辑-x scripts/libs.js并为生产环境执行常规的Browserify构建(以排除文件),但对于开发来说,这会使Watchify任务稍微变慢。

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

发布于 2015-05-03 08:46:31

一种解决方法是完全跳过Watchify,使用nodemon来处理监视。这是用于开发和生产构建的完整package.json:

代码语言:javascript
复制
{
    "private": true,
    "devDependencies": {
        "node-sass": "latest",
        "autoprefixer": "latest",
        "browserify": "latest",
        "strictify": "latest",
        "uglify-js": "latest",
        "nodemon": "latest"
    },
    "scripts": {
        "build:main:bundle": "browserify scripts/main.js -o scripts/main.bundle.js -x ./scripts/libs.js -t strictify",
        "build:main:uglify": "uglifyjs scripts/main.bundle.js -c -o scripts/main.bundle.js",
        "build:main": "npm run build:main:bundle && npm run build:main:uglify",
        "build:libs:bundle": "browserify -r ./scripts/libs.js -o scripts/libs.bundle.js -t strictify",
        "build:libs:uglify": "uglifyjs scripts/libs.bundle.js -c -o scripts/libs.bundle.js",
        "build:libs": "npm run build:libs:bundle && npm run build:libs:uglify",
        "build:styles": "node-sass --stdout --output-style compressed styles/styles.scss | autoprefixer -o styles/styles.css",
        "build": "npm run build:main && npm run build:libs && npm run build:styles",
        "watch:main": "nodemon -e js -w scripts -i scripts/main.bundle.js -x 'npm run build:main:bundle'",
        "watch:styles": "nodemon -e scss -w styles -x 'npm run build:styles'",
        "watch": "npm run watch:main & npm run watch:styles"
    }
}

这允许使用以下两个命令进行开发(使用watch)和生产(使用build):

代码语言:javascript
复制
npm run watch
npm run build

唯一需要注意的是要做一份手册

代码语言:javascript
复制
npm run build:libs

因为每次更新脚本/libs.js文件(其中包含jQuery/Backbone/TweenLite等文件,所以您不需要经常更新)。有关完整的示例,请参阅以下内容:Weblate

感谢NPM for Everything在没有直接解决Watchify问题的情况下帮助找到solution...even……

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29976914

复制
相关文章

相似问题

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